{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 与黑洞同一天生日是什么感觉？\n",
    "\n",
    "2019年4月10，黑洞同学领取了人生第一张证件照，巧的是这天也是我生日，\n",
    "\n",
    "\n",
    "\n",
    "##### 本以为朋友圈会收到满满的祝福像这样\n",
    "\n",
    "#### 但是却是这样\n",
    "\n",
    "#### 于是我决定报复黑洞。。。\n",
    "我要爆出黑洞的身高体重和年龄，这个老肥宅。我要把它的数据画在表格上和太阳对比。\n",
    "\n",
    "#### 但是我遇到了一个问题，\n",
    "如果把太阳的质量画成1cm长像下面这样，那么黑洞同学的质量条能从我的显示屏一直捅到月球上。\n",
    "或者把黑洞画成10cm ，但是这样太阳就连一个像素的高度都没有了。\n",
    "#### 本着理工直男的较真精神我做了这些\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 279,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "地球: 0.0000030303\n",
      "太阳: 1\n",
      "黑洞: 6600000000.0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>name</th>\n",
       "      <th>体积</th>\n",
       "      <th>年龄</th>\n",
       "      <th>质量</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>太阳</td>\n",
       "      <td>1</td>\n",
       "      <td>45.7</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>地球</td>\n",
       "      <td>0.0000007692</td>\n",
       "      <td>45</td>\n",
       "      <td>0.0000030303</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>黑洞</td>\n",
       "      <td>680000000</td>\n",
       "      <td>???</td>\n",
       "      <td>6.6e+09</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  name            体积    年龄            质量\n",
       "0   太阳             1  45.7             1\n",
       "1   地球  0.0000007692    45  0.0000030303\n",
       "2   黑洞     680000000   ???       6.6e+09"
      ]
     },
     "execution_count": 279,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#质量\n",
    "import pandas as pd\n",
    "from decimal import *\n",
    "sun=1\n",
    "hole=6.6*pow(10,9)\n",
    "pow(hole,1/4)\n",
    "\n",
    "earth=\"%.10f\" % (1/330000)\n",
    "df_sun={\"name\":\"太阳\",\"质量\":sun,\"体积\":1,\"年龄\":45.7}\n",
    "df_earth={\"name\":\"地球\",\"质量\":earth,\"体积\":\"%.10f\" % (1/(1.3*pow(10,6))),\"年龄\":45}\n",
    "df_hole={\"name\":\"黑洞\",\"质量\":hole,\"体积\":680*pow(10,6),\"年龄\":\"???\"}\n",
    "df=pd.DataFrame([df_sun,df_earth,df_hole])\n",
    "print(\"地球:\",str(earth))\n",
    "print(\"太阳:\",sun)\n",
    "print(\"黑洞:\",hole)\n",
    "earth=1/330000\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 原谅我的表达能力如太阳般渺小\n",
    "表示，只会说，哇，好大，真nb。不不不，我虽然表达能力塑料级，但是动手能力可是黄金级的。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0, 0, ''), Text(0, 0, '太阳'), Text(0, 0, '黑洞')]"
      ]
     },
     "execution_count": 123,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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pjtPAUA3WYuBLZFP7AIAIB0RCwBAOiIWAIB0RCwAAOmIWAAA0hGxAACkI2IBAEhHxAIAkI6IBQAgHRELAEA6IhYAgHRELAAA6YhYAADSaSqKoqjXi/Xq1St22WWXer0cn6OzszNaWloaPcYWz/uw+Vi6dGl8/PHHjR6jLqzFmw9rwObB+7D52Ji1uNcmnmUtu+yyS1QqlXq+JJ+hVCp5LzYD3ofNR6lUavQIdWMt3nxYAzYP3ofNx8asxW4nAAAgHRELAEA6W02dOnVqPV/wkEMOqefL8Tm8F5sH78PmY0t6L7akn3Vz573YPHgfNh8b+l7U9Re7AACgFtxOAABAOiIWAIB0RGwPtnLlylixYkWjxwDYolmLYdMQsT3YokWLYs8991zvsW984xsxYsSI+NrXvhbnnntunSfjU4sWLYoPPvig0WMAm5C1OAfrcT51/bAD6m/AgAHr/f7WW28d8+bNi8mTJ8eIESNi/Pjx8Yc//CH69esXERGvv/563H///XHYYYfVc9we46abboo77rgjttlmm4iIWLZsWey8884REbF69erYY4894s4774x77rknHnvssbj11ltj5MiRMWjQoLWep1KpxLRp02LcuHF1/xmA2rEWN471uOdyJbYHKYoiVq5cWd3/8MMPq//Rfnr8o48+ioiIL3zhk7f+6aefjpEjR0Zzc3PceOON8cwzz8QzzzwT3/3ud6NPnz71/QF6kI6Ojjj33HPj+9//fsydOze22mqrmDdvXhx//PFxyy23RFtbW0REXHnllXHkkUdGR0dHDBkyJBYsWLDWNn78+Ojdu3eDfxpgY1iLNy/W457Lldge5K233orvfe970bt372hqaop//etf8dprr8WwYcMi4pOF88MPP4w//elPEfHJ5xM3NzdH3759Gzl2j/Tp/5j++te/xqxZsyIiYv78+fH444/HmDFjoqmpKYqiiDfffDN++ctfxj//+c+IiPjtb38bd9xxRzQ1NcXXv/712HnnnavPBeRgLd68WI97LhHbg+yxxx7x0ksvVfd/9atfxc9//vO45ppr4ogjjljn/K222io6Ojqio6MjIiLOO++8tf4Ja9KkSfUZvAf66KOP4oorroh+/frFiy++GEuWLImf/exnURRFjBkzJnbaaad4++23Y8SIEXHhhRfG2LFjIyLihz/8YYwfPz6amppi9erVceWVVzb4JwE2lrV482I97rlEbA82Z86cmD59ekyfPn29C2f//v1j0qRJceutt0ZExI033hgjRoyIiIgzzjijjpP2PJdccklccskl1f199903FixYsM55zz33XPz617+OTz9zZMGCBXHhhRdGRMTJJ59cn2GBTcpa3FjW457LdfEeau7cubHddtvFOeecE+3t7XHfffet97yhQ4fG888/X+fper5bbrklBg8eHMOGDYthw4bFkiVLYtSoUTFq1Kg4/PDDY+LEiRER8eUvfzmuvvrqaGpqiohP7t0aNWpUXHnllVGpVBr5IwA1YC1uPOtxz+VKbA/00ksvxfnnnx+XX355RETMmDEjjjzyyNh+++1j1KhR1fOeeOKJmDhxYkyaNClef/31Ro3b47z//vtx1llnxTnnnFP93r777htPPPFEdX/VqlXR0dER2267bQwfPjzuvvvuiIj470+B/nQhBXKyFjee9bhnE7E9zL333huXXXZZTJ8+PaZMmRI77rhjjBo1KmbPnh3HHnts/OAHP4gpU6bExx9/HEOGDIlHH3009t5775g0aVKcf/75sf3220dExN/+9jf3YXXRzTffHA888EBstdVW1e998YtfrP7zYETEmjVrYr/99ouxY8fGTjvtFDvssENERGyzzTbxyCOPxNy5c+OEE06Izs7Oeo8P1IC1ePNgPe7hCnqM2bNnF8cdd1zx3nvvFUVRFO+8807R2tpaPf6Pf/yjOOWUU4q//OUvxX777bfWYydMmFA8+eST1f3TTz+9mD9/fl3m7olOOumk4o033igWL15cTJ8+vSiKojj77LOL9957r3jvvfeKE088sSiKojj22GOLxx57rFi2bFlxxBFHrPM8P/nJT4oHHnignqMD3WQt3rxYj3suEUtRFEWxbNmy4v3336/uf/jhh8Xq1asbOFFer7zySnHIIYcURVEUS5YsKYYOHVoURVFMmTKlugAOHz68ePnll4sf/ehHxZo1a4p33nlnnUXzsssuK0aOHFm0tbXVdX6gcazFtWU97tmaiuK/bvoAuu3jjz+OZcuWxYABA6Ioiujs7Ixtt912rXNWrVoVW2+9dYMmBNgyWI97NhELAEA6/sQWAADpiFgAANIRsQAApCNiAQBIR8QCAJDO/wGEWBwrOo0CQgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 840x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签\n",
    "plt.rcParams['axes.unicode_minus']=False #用来正常显示负号\n",
    "#画布\n",
    "fig, ax = plt.subplots(1,1,figsize=(10.5,7.5), facecolor='white', dpi= 80)\n",
    "grid=plt.GridSpec(2,2, hspace=0.5, wspace=0.2)\n",
    "left=plt.subplot(1,2,1)\n",
    "right=plt.subplot(1,2,2)\n",
    "right.vlines(x=1, ymin=0, ymax=sun, color='firebrick', alpha=0.7, linewidth=20)\n",
    "right.vlines(x=2, ymin=0, ymax=hole, color='firebrick', alpha=0.7, linewidth=20)\n",
    "right.set_xticks([0,1,2,3])\n",
    "right.set_xticklabels([None,\"太阳\",\"黑洞\"])\n",
    "\n",
    "left.vlines(x=1, ymin=0, ymax=sun, color='firebrick', alpha=0.7, linewidth=20)\n",
    "left.vlines(x=2, ymin=0, ymax=10, color='firebrick', alpha=0.7, linewidth=20)\n",
    "left.set_xticks([0,1,2,3])\n",
    "left.set_xticklabels([None,\"太阳\",\"黑洞\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 我先想到的是把条折叠起来\n",
    "我地球想象成一根线，于是有了下面的图，那个小小的线是地球的质量，而右边一长条是一个100个地球长10个地球宽的布条，也就是说每一个布条都能放下1000个地球。然而右边才不过1/100个太阳，如果要全画出来，可能得一直画到隔壁老王家去。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 287,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(1, 20, '地球')"
      ]
     },
     "execution_count": 287,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5AAAAHqCAYAAAByaqGqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMTQAADE0B0s6tTgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3X2c1XWd///nzHAxhILhjpKyZKz+LMgkNFDUFshLEl12My8IxDTTX6RheLGLmma6sLV0qS4btrR2Zda2RTliEhYXmkxikRpqZoRCkkgMKHI13z/IWcnBeasMB5n7/XabW3POeZ8zr8+cyQ+P+XzOmaqmpqamAAAAQCuqKz0AAAAArw8CEgAAgCICEgAAgCICEgAAgCICEgAAgCICEgAAgCICEgAAgCICEgAAgCICEgAAgCICEgAAgCIdKj1AknTu3Dl1dXWVHgOAndSKFSvy/PPPV3qM1yX7WABa80r2sztFQNbV1WXp0qWVHgOAnVSvXr0qPcLrln0sAK15JftZp7ACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQREACAABQpDggN2zYkOHDh+euu+562XUTJ07MgAEDMnz48KxYseK1zgcAu7y/3sc+/PDDGThwYAYPHpypU6c2r7vhhhty8MEHZ9iwYXnkkUcqNC0A7VlRQK5fvz4jRozIkiVLXnZdfX195s+fn4aGhkyYMCETJ07cLkMCwK6qpX3s6NGjM2nSpMybNy+33nprlixZkkWLFuX666/PPffck6lTp+aCCy6o4NQAtFfFRyCnTZuWQw899GXXzJw5M6NGjUp1dXWGDh2au++++zUPCAC7uhfvY1etWpUnnngiw4YNS1VVVY477rjMnj07s2bNysiRI9OlS5cccMABefLJJ7Np06YKTw5Ae9OhZFGnTp3Sq1evVtc1Njamd+/eSZKqqqqsXbu2xXVTpkzJlClTmi+vWbOmZAzgde75lSvzy0svbZPHPnjy5HTu0aNNHhva0l/vY1+8L02S7t27Z9myZdmwYcNW13ft2jUrVqxIz549t3q8SuxjN2/YkCfr64vX73PCCUnyiu7T8+ijs/zOO9v0a+zM97H9tr89b7/v2au7T3XHjsXrX4migCzVrVu3raJx9erVLa676KKLctFFFzVfLolTAGgP/npf2tjYmKampm1e/9cqsY/dvHFjnpwxo3h9z2OOSZJXdJ+6I49s86+xM9/H9tv+nXGunfk+vmfHtFlAbtd3YR08eHBmzZqVJFm8eHHq6uq258MDwC6ve/fuSZJly5YlSRoaGtKnT5+t9rGrV6/O8uXL7WcB2OFe9RHISZMmpX///jn++OObrxsxYkQmT56ccePGZc6cORk/fvx2GRIA2pNLL700J554YgYNGpT7778/06ZNS9euXbN58+aMHTs2v/3tb/OhD30oHTps1xOJAKBVr2jPM3369ObPL7vsspfcXltbm7lz56a+vj5jxozJwIEDX/OAANAevHgfe8YZZ6R///5ZtGhRJk2alK5duyZJZsyYkdtvvz1dunTJsGHDKjQpAO3Zdv/VZW1tbUaOHLm9HxYA2pW+ffumb9++W11XU1OT9773vRWaCAC282sgAQAA2HUJSAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoISAAAAIoUBeTEiRMzYMCADB8+PCtWrGhxzcaNGzNmzJgcddRReec735k5c+Zs10EBoL1obGzMySefnCOOOCKDBg3KQw89lIcffjgDBw7M4MGDM3Xq1EqPCEA71WpA1tfXZ/78+WloaMiECRMyceLEFtfdfvvt6dChQ+bMmZNvfvObmTBhwnYfFgDag69+9as55JBDMm/evFx99dW56qqrMnr06EyaNCnz5s3LrbfemiVLllR6TADaoVYDcubMmRk1alSqq6szdOjQ3H333S2u23vvvfO73/0uq1evzs9//vP07dt3m485ZcqU9OrVq/ljzZo1r34LAGAX07NnzyxevDhr167NggUL0rdv3zzxxBMZNmxYqqqqctxxx2X27Nkt3tc+FoC21GpANjY2pnfv3kmSqqqqrF27tsV1ffv2zV577ZUvfelLue2223LmmWdu8zEvuuiiLF26tPljt912e5XjA8Cu56ijjsqzzz6bL37xi1m4cGGGDRvWvC9Oku7du2fZsmUt3tc+FoC21KG1Bd26ddsqGlevXt3iusmTJ+eMM87IySefnKampvTt2ze//vWvU1NTs/2mBYB24OKLL85VV12Vgw8+OM8++2z69euXbt26Nd/e2NiYpqamCk4IQHvV6hHIwYMHZ9asWUmSxYsXp66ursV1a9euzX333ZckWbRoUf70pz+lqqpqO44KAO3Di/epP/3pT7P77rsnSfNRx4aGhvTp06di8wHQfrV6BHLEiBGZPHlyxo0blzlz5mT8+PGZPn16kmTs2LHN6y688MKMGTMmu+++e/bYY498/vOfT3W1vxICAK/UFVdckXPOOScf/ehH86Y3vSk33nhjnnrqqZx44okZNGhQ7r///kybNq3SYwLQDrUakLW1tZk7d27q6+szZsyYDBw4sMV1vXv3zl133bW95wOAdqd///5paGho8fpFixZl0qRJ6dq1awUmA6C9azUgky0ROXLkyLaeBQB4GX379n3ZdzkHgLbmHFMAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKFAXkxIkTM2DAgAwfPjwrVqx42bWzZ8/Occcdl6ampu0yIAC0V9OnT88555yTJHn44YczcODADB48OFOnTq3wZAC0V60GZH19febPn5+GhoZMmDAhEydO3ObaZ555Jh/96Efz5S9/OVVVVdt1UABoTx577LH8+7//e6ZMmZIkGT16dCZNmpR58+bl1ltvzZIlSyo8IQDtUasBOXPmzIwaNSrV1dUZOnRo7r777m2uPe+889KrV69897vfzR/+8IdtrpsyZUp69erV/LFmzZpXNz0A7II2b96cD3zgA+nXr1/++7//OytXrswTTzyRYcOGpaqqKscdd1xmz57d4n3tYwFoS60GZGNjY3r37p0kqaqqytq1a1tcN2fOnCxYsCCf//znM2TIkBx//PFZuXJli2svuuiiLF26tPljt912ew2bAAC7lq9//evZvHlz/u3f/i39+vXLIYcc0rwvTpLu3btn2bJlLd7XPhaAttShtQXdunXbKhpXr17d4rp77703o0ePzoEHHpgk6devXxoaGnLsscdup1EBoH2499578+EPfzi9e/dO7969s8cee2ThwoXNtzc2NnqvAQAqotUjkIMHD86sWbOSJIsXL05dXV2L6/r27ZvFixcnSZ577rksXLgwffr02Y6jAkD78OJ96ooVK7J8+fL06tWr+ahjQ0ODfSwAFdHqEcgRI0Zk8uTJGTduXObMmZPx48dn+vTpSZKxY8c2rzv++OMza9asHHXUUXn66adz9tlnZ//992+ruQFgl3XWWWfl/PPPz9///d/nqaeeyqRJk9KxY8eceOKJGTRoUO6///5Mmzat0mMC0A61GpC1tbWZO3du6uvrM2bMmAwcOLDFdVVVVfnMZz6z3QcEgPamtrY2//Vf//WS6/v3759FixZl0qRJ6dq1awUmA6C9azUgky07spEjR7b1LADAy+jbt2/69u1b6TEAaMdafQ0kAAAAJAISAACAQgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIgISAACAIkUBOXHixAwYMCDDhw/PihUrWl1/2WWX5aqrrnqtswFAu3faaadl+vTpWbFiRY466qgceeSRufLKKys9FgDtVKsBWV9fn/nz56ehoSETJkzIxIkTX3b93Xffneuvv367DQgA7dW3v/3t/OAHP0iSjBs3LmeddVbmzp2bxx9/PPPnz6/wdAC0R60G5MyZMzNq1KhUV1dn6NChufvuu7e59tlnn82FF16YSy+9dLsOCQDtzfLly/PpT386559/fpJk1qxZOf3005MkI0aMyI9//ONKjgdAO9VqQDY2NqZ3795Jkqqqqqxdu3abay+55JKMHz8+vXr1etnHnDJlSnr16tX8sWbNmlc4NgDs2s4777x89rOfze67754kqa2tTZcuXZIk3bt3z7Jly1q8n30sAG2p1YDs1q3bVtG4evXqFtfdeeedWblyZfNvR1/ORRddlKVLlzZ/7Lbbbq9gZADYtd10001529veliOPPLL5upqamubPGxsb09TU1OJ97WMBaEsdWlswePDgzJo1KyNHjszixYtTV1fX4rrvfOc7eeyxxzJkyJAsX74869aty95779186g0AUOZ73/teVq1alSFDhuTxxx9PbW1t/vSnP6WhoSGHHnpoGhoa0qdPn0qPCUA71GpAjhgxIpMnT864ceMyZ86cjB8/PtOnT0+SjB07tnndf/zHfzR/Pn369Dz++OPiEQBehR/+8IfNn1911VXZb7/98pa3vCVjxozJ8ccfn+9+97sv+54EANBWWg3I2trazJ07N/X19RkzZkwGDhzY6oO+OCwBgFfvxX8W67bbbss999yTSy+9NHvvvXflhgKg3Wo1IJMtETly5Mi2ngUAeBn77bdf9ttvv0qPAUA71uqb6AAAAEAiIAEAACgkIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACgiIAEAACjSodIDAAA7l3Xr1mX9+vXF6zc+91zWvIL1q1evTpJXfJ+W1nesrk7nDv45A7Cj+C8uANBs3bp1eXOvXnnq6afb7ov8939vt/v0qK3N/552mogE2EH81xYAaLZ+/fo89fTT+Urv3nlD9c79SpdnN2/OB5csyYbNm9O50sMAtBMCEgB4iTdUV+/0AQnAjmfPAAAAQBEBCQAAQBEBCQAAQBEBCQC8IlUdO2aP/v3TsVu3Fm8/7Oab02/ixFf12N0POijDH3wwux1wQI76/vfTea+9XsuoAGxnAhIAeEU69+iRo7773exx8MEtL9i0KZs3bnxVj920YUOqO3bMmkceydrf/S4HXXXVqx8UgO3Ou7ACAK/IpuefT5Js3rCh+brDpk/Pku98J0/+8IfZvGFDmjZvfsn99j/vvOw1ZEiaNm1KklRVV6fx0Uez6Mork6amJNlyv798/qsrrkh1p05JdXXSwuMBsOMJSADgFXkhAF8IvSSp3Xvv1HTp0uL6rm95S9b+7ndZMW9e1vz2t6l797vT45BD8pspU7JxzZoc9MlP5s2nntp81LKqpibDH3xwy+fV1Vm/alV+fNhhbbtRABQRkABAsZouXVLdsWOSLaFX06VLNq1bl82bNqXpRUckd+vTJ2+75JL0POaYVHfunFnvfnf+vGhR/rxoUWp79sxuffrkj3femSR5ZuHCPHDNNdm8YUN2P+CADKmvz219+275Gh06pKa2dsdvKAAtEpAAQJFOb3xjjmtoaL58+M03J0nufPe7k6amdO/XLz0GDsyeAwdm88aN2bh2bVb+4hfZc+DAl33czc8/n9o3vSnrli17yW1NmzalunPnZM2a7bsxALwq3kQHACiyftWqzDz00Pz4yCOTJD8/++zcc9ZZ+f8uuCC7veUt2ffkk7P5+eez9vHH8/tvfSv3T5iQpxcsaL5/dadOW44mVlU1X67u1Cl7DhqUv58xI53r6v5vbefOSZK/O+ecHHHLLem4xx47cEsB2BYBCQCUaWrK+meeyca/HA3c9NxzWffHPyZJ1j/zTB649tr8+uqrs+6pp1q8e69/+IcMf+CBHPSJT+RvDjss733oobz5jDPy9M9/njW/+136XXFFc1zuc8IJeeOAATlw/Pgsq6/PhlWrdsw2AvCynMIKALxqjYsX55eXXpp3z5jR4u3VNTXN78i69Pvfz7Lbb8/fnnJKeh5zTBacd142/+UdXRddeWU2/PnPOfCii5IkB150UTq84Q155EtfyiM33LBjNgaAVglIAGC7q6qqyj4nnpje739/1i1fnmTLax03P/98Nq9fn6ZNm7Y6qrj6oYfyphNOSK+TT06S/HnRomzetEk8AuxknMIKALxq3d/+9nTp1WvrK/9yGmrvU07Jxueey68/+clWH6fLPvvkHddck0f/4z+SJA99+tPZe8iQ9Dj00O0+MwCvXlFATpw4MQMGDMjw4cOzYsWKFtds3LgxZ511VoYNG5Z3vetd+dGPfrRdBwWA9mLNmjU56aSTcuyxx+Zd73pXFixYkIcffjgDBw7M4MGDM3Xq1IrNVtWxY+oGD06SHPLFL+aIb387nXv02GpNTW1tqjt1yj1nnpl7Ro/O+lWrUt2p01Zrqjt2TM9jj83bLrssnfbcM4d99at5YsaMPPGXU2HXPv54Hp06Ne+68cbs9nd/t2M2DoBWtRqQ9fX1mT9/fhoaGjJhwoRMnDhxm+v69u2bn/zkJ/nGN76Ri/7yGgYA4JW5+eabc/rpp+eOO+7Iddddl8svvzyjR4/OpEmTMm/evNx6661ZsmTJDp+r05575rgFC3LoDTdk7e9/n8duuil3HnVUVv3qV0mSquot/6y4+wMfyAOf+lTz/d582mkZNnt2OvXokX1GjMi+J52U7m9/e3qNHJlnf//7HHHLLXl+xYo8cO21W329R268MX9+6KEM/uY30+OQQ3bchgKwTa2+BnLmzJkZNWpUqqurM3To0Fx44YUtrhsxYkRGjBiRJFm+fHn22WefbT7mlClTMmXKlObLa/xtJwBodv755zd//sI+9YEHHsiwYcOSJMcdd1xmz56dM8888yX3bct97Pqnn87yO+7IH2fPzrLbb0+amppv27h2beqOOCJ/uueera6vqa3NPieckMbFi7PnoEF5++WX57H/+q/c+6EPNb8G8rnly7PqV79K08aNW3/BzZvT8JGPZMBnP5tNf3mzHQAqq9WAbGxsTO/evZNseUH82rVrX3b9unXr8rGPfSxf+MIXtrnmoosu2uoIZa+/fu0EAJAVK1bk2muvzdSpU7N48eLm67t3755ly5a1eJ+23sfef8klLV7/+29+M++45pr0GjnyJbetefzxPPSZz2T1b36Tp37602x69tmtbn9q9uwkyd7DhuVtl1zS/KdBkmRjY2PuPeec7bgFALwWrQZkt27dtorG1atXb3NtU1NTzj777Jxxxhk54ogjts+EANAOrV+/Pqeeemquueaa9O/ff6t9cWNjY5pedJRvZ/DE97+fJ77//VbX/XU8vtjTCxbkj7Nn5w/f/e72HA2A7ajV10AOHjw4s2bNSpIsXrw4dXV121z7sY99LHvuuWc+/vGPb78JAaCd2bRpU0477bS8973vzSmnnJLu3bsnSfNRx4aGhvTp06eSI7aJjY2NeWjy5Kx59NFKjwLANrR6BHLEiBGZPHlyxo0blzlz5mT8+PGZPn16kmTs2LHN6+6444588YtfzFFHHZUhQ4YkSWbNmpWampq2mBsAdlk33XRTbrvttqxcuTIzZsxIXV1dLr300px44okZNGhQ7r///kybNq3SYwLQDrUakLW1tZk7d27q6+szZsyYDBw4sMV1xx57bDZv3rzdBwSA9ubcc8/Nueee+5Lr+/fvn0WLFmXSpEnp2rVrBSYDoL1rNSCTLRE5soUXxQMAO07fvn3Tt2/fHfK1nn0d/FL49TAjwK6mKCABgPahU6dO2WvPPfPBCvydyVejR21tOla3+pYOAGwnAhIAaFZbW5vfL12a9evXF99n43PPbfPPe7Sk/7/9W5Jt/0mQlhx09dVZ9IlPvOT6jtXV6dzBP2cAdhT/xQUAtlJbW5va2to899xzL/n7z927d0/Hjh23um5jx47ZrVOn4sfv1q1bkrzi+7yS9QC0Ded8AAAtOvRdg1JXV7fVx6gPjKn0WABUkCOQAECLVq1enQFjPpk3vvntSZKlC+qzavUTFZ4KgEoSkADANlXXdEhNxy2njlbV1CSbKjwQABXlFFYAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKCEgAAACKdKj0AADAzuHJJ5/Mxo0bmy9vetHnL3ju2WezZMmS5stdunTJG3fbbYfMB0DlCUgAIPfdd18OOeSQJElVVdWW/62uSZ8uuzev6dR1j8yr/1n222+/JElTU1Nqamryp2XLdvi8AFSGgAQAcvDBB+fvDjgwnd92THodenyLa3q+/cj0fPuRzZcfqf/PvH2v6uzmCCRAu+E1kABAampqcu01V2fpvO9k88YNra5ft/pPWfqLmfnUJ6/eAdMBsLMQkABAkuR973tf6np0z5P3z2p17R/m/U+OP+GEvOMd79gBkwGwsxCQAECS8qOQjj4CtF8CEgBoVnIU0tFHgPZLQAIAzVo7CunoI0D7JiABgK28733vy9/06NbiUUhHHwHaNwEJAGylpqYm137ypUchHX0EQEACAC9xyimn5G/e2C1PLLyz+TpHHwEQkADAS7zwWsgn5m85CunoIwCJgAQAtuGUU07J3/TonicW3unoIwBJkg6VHgAA2Dm98FrID/3/F+T5tavzvwvurfRIAFSYI5AAwDadcsop2ftvejj6CEASRyABgJdRU1OT2bN+nN13373SowCwExCQAMDL+tu//dtKjwDATsIprAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkAAAABQRkADAy9q8YUOW/uAH2bxhQ6VHAaDCBCQA8LI2b9yYJ2fMyOaNGys9CgAVVhSQEydOzIABAzJ8+PCsWLFim+tuuOGGHHzwwRk2bFgeeeR3ZEgkAAANg0lEQVSR7TYkALBF6T4ZANpCqwFZX1+f+fPnp6GhIRMmTMjEiRNbXLdo0aJcf/31ueeeezJ16tRccMEF231YAGjPSvfJANBWOrS2YObMmRk1alSqq6szdOjQXHjhhS2umzVrVkaOHJkuXbrkgAMOyJNPPplNmzalpqbmJWunTJmSKVOmNF9es2bNa9gE4PWic48eGfjlL1d6DHjdKtknt8U+trpDh+wzYkSqO7T8z4YXbn8lj5fkFd2npra2zb/Gznwf22/7d8a5dub7+J61mnmvWlVTU1PTyy04++yzc+qpp+bYY49NkvTp0yePPfbYS9Zdc8012XvvvXPuuecmSQYPHpz/+Z//Sc+ePVsdolevXlm6dOmrmR+AdsB+YovSffKL+d4B0JpXsq9o9RTWbt26Ze3atc2XV69eXbSusbExrbQpAPAKlO6TAaCttBqQgwcPzqxZs5IkixcvTl1dXavrVq9eneXLl29zLQDwypXukwGgrbR6Cuu6dety5JFH5rDDDsucOXPykY98JJ06dUqSjB07dqu1w4cPz1577ZXf/va3Oeqoo3LdddcVDeH0GgBejv3EFi3tk1946ci2+N4B0JpXsq9oNSCTLTus+vr67Lvvvhk4cOA2123atCm33357unTpkmHDhrXJwAC0P/YT/6d0n/wC3zsAWrPdA7Kt2bkB8HLsJ1493zsAWrNd30QHAAAAEgEJAABAIQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAEQEJAABAkaqmpqamSg/RoUOH9OzZs9JjsBNYs2ZNdtttt0qPwU7CzwMvWL58eTZu3FjpMV6XOnfunLq6uq2ua+//37L9tt/22/72alvbv2LFijz//PNFj9Fhew/1avTs2TNLly6t9BjsBHr16uVngWZ+HnhBr169Kj3C61ZL/yBo7//fsv223/bb/vZqe2y/U1gBAAAoIiABAAAoUnPVVVddVekhkuTwww+v9AjsJPws8GJ+HniBn4Xtq71/P22/7W/PbL/tfy12ijfRAQAAYOfnFFYAAACKCEgAAACKCEh2iOXLl+f973//VtfNnz8/o0aNavW+Dz/8cP7hH/4hZ599dh544IG2GpEKWb9+fdauXVvpMYB2Yv/998+QIUMyZMiQXH755ZUehx1kw4YNGT58eO66664kydSpU9OvX7/mn4VHH320sgPSJtasWZOTTjopxx57bN71rndlwYIF7e65X7t2be688878+te/3m6PuVP8HUh2fTU1NVmyZEmS5K677sqiRYty+OGHp2PHjs1r7r///nz7299OdXV1Nm3alA996EPZb7/90rFjx9TW1uaf//mf8/TTT2fz5s2prva7j13FokWLMnz48Pzxj398yW3vfOc707179yxbtizvec97csMNN1RgQti1TJw4MfX19enZs2e++tWvpq6urtIj7TCPPvpo+vfvn+985zuVHmWH27BhQ04++eRccsklGTJkSB5++OF84AMfSIcOHXLmmWfmwx/+cKVHbDPr16/PSSedtNXfvpszZ05uueWWvP3tb6/gZG1vzZo1OeOMM7Ju3bo888wzueGGG9K9e/d289zffPPNOf3003P66afnxz/+cS6//PLU1dW1i+c+SZ577rkcffTROeGEE/Kzn/0sJ510Uo4//vjX/Pz7Vzg7RFVVVfPna9euzYoVK5Ikf/7zn3PzzTfnvPPOy7777puTTz453//+9zNixIjcf//9GTJkSE4//fT85Cc/yTnnnJMJEybkvvvuq9Rm0Eb23XffFq/v2LFj7rrrrowYMSLDhw/POeeck4MOOihHHnlkjjzyyOy9996ZN2/eDp4WXr/q6+szf/78NDQ0ZMKECZk4cWKlR9qhfvazn+W+++7LEUcckcMPPzwLFiyo9Eg7xPr16zNixIjmX+QmyejRozNp0qTMmzcvt95661a37YqmTZuWQw89tPny3Llz89GPfjTvfOc7c8EFF2RXfU/JFwLqjjvuyHXXXZfLL7+8XT33559/fk4//fQkW86G22effdrNc58kv/rVr/Iv//IvufLKK/PZz342M2bM2C7Pv4CkzX3961/P0UcfnQceeCD9+/fPqlWrcs8992T8+PFZuHBhli9fnrvuuit1dXUZNGhQunbtmsGDB+eEE07Il770pXzrW9/KsGHDctddd+U///M/07dv30pvEq9BU1NT1q9f33x53bp1ecMb3rDV7c8//3ySNB9p/tnPfpahQ4emtrY2X/ziFzN37tzMnTs3J5xwQjp37rxjNwBex2bOnJlRo0aluro6Q4cOzd13313pkXaogw8+OHfccUfmzZuX6667LhMmTKj0SDvMiwNq1apVeeKJJzJs2LBUVVXluOOOy+zZsys8Ydvp1KlTevXq1Xx548aNmTJlSmbPnp177703Dz74YPOprbualgKqPT33L1ixYkWuvfbaXHbZZe3muU+SQYMGZcSIEVm8eHGuvfbajB49ers8/wKSNjdq1Kjceeed6devX77yla/k4osvTm1tbcaPH58hQ4bk4osvTocOHfLQQw/l8MMPz4MPPpjDDz88mzdvzujRo/PUU0/l3nvvzR/+8Iecdtppu/y56ru6xx9/PIMGDcqgQYNy2GGH5YMf/GDmzZuXww47rPlj4MCBzeuXL1+e2tradO3atYJTw66hsbExvXv3TrLlzJD29vrjfv36Zf/990+SDBgwIA899FCFJ9ox/jqgXvxzkKT5pQLtRYcOHTJ8+PAkW850Oeigg3b5n4UXAmrs2LHt7rlfv359Tj311FxzzTU58MAD291zn2z55eFDDz2Uqqqq7fL8C0h2qAEDBmTatGkZMGDAVj/A1dXVOfDAA/PTn/40ffv2zV133ZWuXbvmhz/8Yb7xjW/k6aefzjHHHJOvfe1recc73lHBLeC1estb3pKFCxfm5z//ee65556cf/756dixYyZPnpx77rknP//5z/PLX/6yeX1NTU0aGxvT2NiYJPnoRz/afAprfX19pTYDXpe6deu2VTSuXr26gtPseGPHjs3MmTOTJLfccstWpzS2J3/9c9DY2LhLn8b3137zm9/kuOOOy4YNG9LY2Jjbb789hxxySKXHajMvDqj+/fu3q+d+06ZNOe200/Le9743p5xySrt77l9wwQUX5NZbb82VV165XZ5/AckO9+LXQ27atCknnXRSDj744FRXV6dTp05J0nxa4iOPPJKGhoYcf/zx2X///fPGN76xIjPTdn7wgx/kC1/4Qr7whS+0eHtdXV3GjRuXqVOnJslLTmEFyg0ePDizZs1KkixevLhdvYFOklxzzTX5l3/5lxx00EH53ve+lxtvvLHSI1VE9+7dk6T5yENDQ0P69OlTyZF2qLe+9a0ZMmRI3vrWt+aII47IRz7ykQwaNKjSY7WJvw6o9vbc33TTTbntttsyY8aMDBkyJFdccUW7ee6T5Prrr88VV1yRJFm5cmXe/OY3J3ntz793YaXNNTU1ZdGiRXn88cdz2GGHNZ+Lv3HjxlRVVeXTn/509tprrzz33HOpqanJqlWr8sEPfjCHHnpobrrppnzlK1/Jv/7rv+bqq6/OyJEj86Mf/Sh77bVXhbeK7WHmzJnp1q1bzjvvvNxyyy35zne+k/e9730vWXfooYfm2muv9bzDazRixIhMnjw548aNy5w5czJ+/PhKj7RDHXDAAfnFL35R6TF2CpdeemlOPPHEDBo0KPfff3+mTZtW6ZHa3PTp05s/v/rqq3P11VdXbpgd5IWAWrlyZWbMmJG6urp29dyfe+65Offcc19yfXt47pPkrLPOygc+8IEcccQR6dy5c66//vr88pe/fM3Pf1XTrnzcmp3C17/+9dx444354Ac/mH/8x3/MggUL8rWvfS1f/epXm9d88pOfzMKFC7NkyZKceeaZOe2001JfX58BAwZk9913z2WXXZZvfetb+eY3v5k//OEPueSSSyq4RWwPCxcuzBlnnJGrr74673//+/PYY4/lmGOOydSpU3P00UcnSQ477LB86lOfyvnnn59x48blkUceyfve974MGTIkyZbT0caNG9duT0ODV2PdunWpr6/Pvvvuu9XrjWl/HnzwwSxatCgnnHBCunXrVulx2IE89+3ba33+BSQ73DPPPJNTTz01K1eubL6uR48e+fKXv5x99903HTr834HxpqamHHHEEfmnf/qnfPzjH6/EuLSBb3/72/nEJz6RL3zhC7n44ovzmc98JkcffXR+9atf5cQTT8yYMWNy8cUX5z3veU/uuOOOrFy5Mvvvv3/GjRuXuXPnZo899kiy5XUsP/zhDwUkAMAO4hRWdrg3vvGNueOOO4rWVlVVZc6cOampqWnjqdhR/vd//zdf//rXM2vWrOyzzz6ZMWNGPve5z+Xoo4/OO97xjvziF7/IhRdemCeeeCIbNmxIjx490qNHjyRb/hD25z73ua2OQL74T4IAANC2HIEEXjeeeuqp7L777unSpUuS5Pnnn0/Hjh2b/14kAABtS0ACAABQxK/tAQAAKCIgAQAAKCIgAQAAKCIgAQAAKCIgAQAAKPL/AAEPjIdqMPWfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1120x600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(1,1,figsize=(14,7.5), facecolor='white', dpi= 80)\n",
    "#grid=plt.GridSpec(2,3)\n",
    "left=plt.subplot(1,2,1)\n",
    "right=plt.subplot(1,2,2)\n",
    "left.vlines(x=1, ymin=0, ymax=earth, color='firebrick', alpha=0.7, linewidth=20)\n",
    "left.vlines(x=2, ymin=0, ymax=sun, color='firebrick', alpha=0.7, linewidth=20)\n",
    "left.set_xticks([0,1,2,3])\n",
    "left.set_xticklabels([None,\"地球\",\"太阳\"])\n",
    "\n",
    "right.vlines(x=1, ymin=0, ymax=1, color='firebrick', alpha=0.7, linewidth=1)\n",
    "right.vlines(x=range(2,30), ymin=0, ymax=100, color='firebrick', alpha=0.7, linewidth=10)\n",
    "#right.set_xticks([0,1,2,3])\n",
    "#right.set_xticklabels([None,\"地球\",\"太阳\"])\n",
    "plt.annotate('地球', xy=(1, 5), xytext=(1, 20),\n",
    "             bbox=dict(boxstyle='square', fc='firebrick'),\n",
    "             arrowprops=dict(facecolor='steelblue', shrink=0.05), fontsize=15, color='white')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 于是我想了个办法\n",
    "\n",
    "用棒棒糖来表示66亿这个数字;把他看出4个数字相乘，第一个数字看成棒棒糖的杆子，第二个看出棒棒糖的糖球的面积，第三个看出棒棒糖的颜色。这样每个数字只有285，应该能画下来了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 273,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[Text(0, 0, ''), Text(0, 0, '地球'), Text(0, 0, '太阳')]"
      ]
     },
     "execution_count": 273,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArcAAAHqCAYAAAAeZWbDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMTQAADE0B0s6tTgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xl4lNXB/vF7ZrJM9o2EbAZqERTaakCpIiqgRZoWLVp9RYRClf7EXcSqTWtR61b7Uq27SI3Vil20l1oJWEEsCrRS0VpUkFqEbGTfJuvMPL8/CLxawQSYyXnmme/nuuYCk5N4h5DJzclZXJZlWQIAAAAcwG06AAAAABAqlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4RozpAJIUHx+v7Oxs0zEAYNBZlqW2tjZ1dXXJ7fHI5XKZjgREFcuyFAwE5PV6lZKSwtegTdXV1am7u3tAY21RbrOzs1VRUWE6BgAMquqaGi266SZt+fBD5eXmKibGFk/JQNTx+/2qrqnRmKOP1i/uvFN5ubmmI+G/FBYWDngsyxIAwICt27Zpzvz5+nDbNhUWFFBsAYNiYmJUWFCgD/u+Lrd99JHpSDgMlFsAGGT/2LxZF192mVpaW5Wfn8+PQQEbcLlcys/PV0trq75/2WX6x+bNpiPhEFFuAWAQrVm7VguuuUaWZWloTo7pOAD+y9CcHAWDQS245hq99vrrpuPgEFBuAWCQPPfCC1pUWqoEr1eZmZmm4wA4gKzMTHm9Xl1300167oUXTMfBQWKRFwCEmWVZeuzXv9ZDS5cqKzNTSUlJpiMB6EdaaqpiPB7ddtddamho0Px581hCFCEotwAQRn6/X/fce6+e/eMflZOdLa/XazoSgAFKSkqSx+PRg489psamJi26+mo2f0YAPkMAECZ+v1+33nmnXnj5ZeXl5io2NtZ0JAAHyev1Kjc3V8v/8Ad1dHTo5ptuouDaHJ8dAAiD3t5eLb79dv155Url5+XxzRCIYHGxscrPy9MLL7+sYDCon/7oR/xj1cbYUAYAIdbT06Obb7tNfy4vp9gCDhETE6P8vDy9tGKFbr7tNvX29pqOhAOg3AJACPX29uqnP/uZVrzyivLz8ym2gIPExMQoPz9fK1atouDaGOUWAELE7/frljvu0IpVq5ixBRxqX8F95RXdcscd8vv9piPhvwy43Pb29qqkpERr164d0PgLLrhAZWVlhxgLACLL3s1jL65YwYwt4HB7lyi8uGKFbr3zTgquzQyo3Pb09Gj69OnauXPngN7p73//e7344ouHFQwAIoVlWbrn3nv1wssvq4BiC0SFmJgYFeTn64WXX9Yv7rtPlmWZjoQ+A565ffzxx3X88cf3O66mpkb33HOPFixYcFjBACBSLH3iCf3uueeUl5tLsQWiSExMzL5jwpY+8YTpOOgzoHIbFxenwsLCAb3DSy+9VL/85S+VkpJywDFLlixRYWHhvkd7e/vA0gKAzTz3wgt68LHHlD1kCEcDAVEoLjZWOdnZemjpUq7qtYmQbihbtmyZjjnmGE2cOPELxy1cuFAVFRX7HsnJyaGMAQCD4rXXX9ftP//5vnvoAUQnr9erzIwM3f7zn+u11183HSfqhfTnZ3/605/U3NysSZMmaceOHfJ6vUpLS9OMGTNC+b8BAOP+sXmzbrj5ZqUkJyspKcl0HACGJSUlyR8I6Iabb9bD996rccXFpiNFrUMut3fddZeOO+44TZs2bd/L/vznP+/7/eLFizV8+HCKLQDH2bptm66+/nrFxsQoNTXVdBwANpGWmiq/36+rf/hDLXvwQY0aOdJ0pKjksmywva+wsFAVFRWmYwBAv6prajRn/ny1tLZqaE6O6TgAbGh3ba3SUlP1m6VLlZebazqOIxxMV+QSBwAYIJ/Pp0U33aTGxkaKLYADGpqTo8bGRi360Y/U0dFhOk7UodwCwAAEg0H97Oc/15YPP1ReXp7pOABsLi8vT1s++EC33X23gsGg6ThRhXILAAPwxNNPa8WqVcrLzZXL5TIdB4DNuVwu5eXmasWqVXri6adNx4kqlFsA6Mfav/5VDzzyiLKzs7mkAcCAxcTEKDs7Ww8+8oheX7fOdJyoQbkFgC/w0fbt+tEttyg5OVkJnGUL4CAleL1KSk7WjxYv1kfbt5uOExUotwBwAI2Njbr2xhvl9/uVnpZmOg6ACJWelqZev1/X9W1IRXhRbgFgP/x+v358222qrKxUTna26TgAIlxOdrZ2VVTox7fdpkAgYDqOo1FuAWA/nlq+XG9u2KC8vDw2kAE4bC6XS3l5eXpzwwY9tXy56TiORrkFgP+y+d139cCjjyp7yBB5PB7TcQA4hMfjUfaQIbr/kUf0zj//aTqOY1FuAeBTmpqadNNPf6rY2FglJCSYjgPAYRISEhQbG6sbb75ZTU1NpuM4EuUWAPoEg0Hdeued2l1bqyFZWabjAHCoIVlZ2r17t2676y4ueAgDyi0A9PndH/+oNX/9Kxc1AAirvetvV7/+un7/3HOm4zgO5RYAJG15/30teeABZWVlsc4WQNh5PB5lZWbqf++/X+9/8IHpOI5CuQUQ9Xw+n360eLHcLpeSEhNNxwEQJZKSkuRyuXTT4sXq6OgwHccxKLcAot4jy5bpk127lM15tgAGWU52tj7ZuVOPLFtmOopjUG4BRLW333lHv332WeVkZ7POFsCgc7lcysnO1tPPPqvN775rOo4jUG4BRC2fz6fFd9yh2Lg4xcfHm44DIErFx8crNjZWi2+/neUJIUC5BRC1Hlm2TJ/s3KnsIUNMRwEQ5bKHDNEnu3axPCEEKLcAotLb77yj3/7udxqak8NyBADGsTwhdCi3AKLOvuUIsbEsRwBgG59enuDz+UzHiViUWwBRZ2lZGcsRANjS3uUJjz/5pOkoEYtyCyCqfLR9u55avlw5LEcAYEMul0vZQ4boqWee0Ufbt5uOE5EotwCihmVZuufee+WS5GU5AgCb8nq9kqRf3HefLMsynCbyUG4BRI2/rFmjv2/apKFDh5qOAgBfKCcnR3/btEmvvvaa6SgRh3ILICq0tbXpnl/+UskpKXK7eeoDYG8ej0fJSUm655e/VFtbm+k4EYVneABR4YmnnlJdQ4PS09JMRwGAAUlPT1dtfb2eeOop01EiCuUWgONt//e/9Zvly5U9ZAibyABEjL2by36zfLn+/fHHpuNEDMotAEezLEv39G3K2LtJAwAihdfr3bcZls1lA0O5BeBob27YoL+99ZaG5uSYjgIAh2RoTo7+9tZbWr9xo+koEYFyC8Cx/H6/fvXww4qPj5fH4zEdBwAOicfjUVx8vH718MMKBAKm49ge5RaAY7362mvatn07N5EBiHhDsrK09aOPOBpsACi3ABypu7tb9z/yiJISE9lEBiDiud1uJSUm6lcPP6zu7m7TcWyNcgvAkV5csUKVVVXKyMgwHQUAQiIjI0OVVVV6qbzcdBRbo9wCcJz29nY99NhjSktNZdYWgGO4XC6lpqbqocceU3t7u+k4tkW5BeA4v3/+eTU1Nys1NdV0FAAIqbTUVDU2Nen3zz9vOoptUW4BOEpzc7OWPfkkyxEAOFZGRoaWPfmkmpubTUexJcotAEd5/sUX1dHZqeSkJNNRACAskpOS1NHZqT+99JLpKLZEuQXgGD6fT7955hmlpaWZjgIAYZWWmqonf/tb+Xw+01Fsh3ILwDFeXrVKLS0tSklONh0FAMIqJSVFzS0tWvHKK6aj2A7lFoAjdHd3a9mTTyo5JcV0FAAYFCkpKXq8rEw9PT2mo9gK5RaAI/xlzRrV1tYqjRMSAESJtNRU1dbW6i9r1piOYiuUWwARz+/3a2lZmRK4jQxAFHG5XEpITNTSsjL5/X7TcWyDcgsg4v31jTe0c9cuZXL8F4Aok5mRoU927tS6N980HcU2KLcAIpplWSr77W8VFxfHrC2AqONyuRQXF6cnnn5almWZjmMLlFsAEe3DrVv1ry1blJWZaToKABiRlZmp97Zs0dZt20xHsQXKLYCI9qeXXpJcLnk8HtNRAMAIj8cjl6Q/vfii6Si2QLkFELFaWlr04ooVymTWFkCUy8zM1AsrVqilpcV0FOMotwAi1itr1qi7u1sJXq/pKABgVEJCgrq7u/UKx4JRbgFEpmAwqKeffVaJiYmmowCALSQmJurpZ59VMBg0HcUoyi2AiPSPzZu1c9cuZaSnm44CALaQkZ6unTt36h+bN5uOYhTlFkBE+v1zz8ntdnP8FwD0cblccns8+sPzz5uOYtSAy21vb69KSkq0du3aA45pb2/XWWedpalTp+qEE07QW2+9FYqMAPAZ9fX1em3dOg3JyjIdBQBsZUhWlta8/rrq6+tNRzFmQOW2p6dH06dP186dO79w3FNPPaWZM2fqlVde0R133KEf//jHIQkJAJ/21zffVCAQUFxcnOkoAGArcXFxCgSDWrd+vekoxgx45vbxxx/X8ccf/4VjFixYoJkzZ0qSampqlJ+ff3jpAGA/nnvhBXk5IQEA9svr9er5F14wHcOYAZXbuLg4FRYWDvid1tXV6fbbbz/gzO2SJUtUWFi479He3j7g9w0guu345BO9/+GHbCQDgAPISE/Xvz74QDs++cR0FCNCvqGsp6dH//M//6PbbrtNX/7yl/c7ZuHChaqoqNj3SE5ODnUMAA61um/dPzeSAcD+7X1+XPP664aTmBHSchsIBHTBBRfoW9/6ls4777xQvmsAkGVZ+tNLL/EPYgDoR3JSkv704ouyLMt0lEF3yOX2rrvu0sqVKz/zsmXLlmnFihV66aWXNGnSJAougJD615YtqqyqUmpKiukoAGBrqampqqiq0pb33zcdZdC5LBtU+sLCQlVUVJiOAcDmfnHfffrt736nwoIC01EAwPYqKis1+4ILtPCqq0xHOWwH0xW5xAFARPD7/VqxapXS0tJMRwGAiJCWlqY/r1wpv99vOsqgotwCiAjvf/ihmpqalJyUZDoKAESE5KQkNTU364MPPzQdZVBRbgFEhA1//7vkcnHdLgAM0N7nyw1//7vhJIOLcgvA9izL0qq//EVJzNoCwEFJSkrSyldfjapTEyi3AGyvorJS//nkE05JAICDlJqSov/s2KGKykrTUQYN5RaA7f3trbfkEhc3AMDB8ng8crlc+vumTaajDBrKLQDbe2XNGsXGxZmOAQARKTY2Vq+sXm06xqCh3AKwtZaWFr29ebPSOQIMAA5Jelqa/rF5s1paWkxHGRSUWwC29o/Nm2VZluKYuQWAQxIXFydLe55PowHlFoCtbXr7bUXPHl8ACI+gZekf77xjOsagoNwCsLU3Nm7k4gYAOEwpSUlat3696RiDgnILwLZqa2u1q6JCycnJpqMAQERLTk7WrooK1dbWmo4SdpRbALb13pYtcrvdHAEGAIfJ4/HI7XbrvS1bTEcJO8otANt66+23FYyiW3UAIJyCwWBUbCqj3AKwJcuy9OaGDUphSQIAhERKSore2LDBdIywo9wCsKXa2lpVVFWxmQwAQiQ5KUm7Kisdv+6WcgvAlt57/33W2wJACO1dd/tPh6+7pdwCsKUt77+vYDBoOgYAOEowGNT7H3xgOkZYUW4B2NLb77yjhIQE0zEAwFESEhL09rvvmo4RVpRbALbj9/u1bft2JSUmmo4CAI6SlJiordu2ye/3m44SNpRbALbzyc6d6uruVnx8vOkoAOAo8fHx6u7u1s5du0xHCRvKLQDb2f7xx3K73XK5XKajAICjuFwuud1ubf/4Y9NRwoZyC8B2Pty6lc1kABAmgWBQH3z4oekYYUO5BWA7bCYDgPBJSEjQ5n/+03SMsKHcArAVNpMBQHg5fVMZ5RaArVRUVrKZDADCKD4+Xl3d3aqorDQdJSwotwBspbKqSh6Ph81kABAmLpdLHo9HVdXVpqOEBeUWgK1UVlUpGAiYjgEAjhYMBlVZVWU6RlhQbgHYysc7dkjM2gJA2P1nxw7TEcKCcgvAVrZt3y6v12s6BgA4mjc+Xlu3bzcdIywotwBs5ZOdO+VlMxkAhFW816sdn3xiOkZYUG4B2EZbW5sam5qYuQWAMEvwetXU3Ky2tjbTUUKOcgvANiqrquR2u+XxeExHAQBH2/s868QTEyi3AGyjsqqKI8AAYJC43W5HnnVLuQVgG/UNDQoGg6ZjAEBUCAaDamhsNB0j5Ci3AGyjrr6ecgsAgyQYDKq2vt50jJCj3AKwjcrqasXGxpqOAQBRITY2VlUOvMiBcgvANmpqahRHuQWAQREbG6ua2lrTMUKOcgvANmrr65m5BYBBEhcbq1rKLQCEh2VZamhspNwCwCCJjY1VQ1OTLMsyHSWkKLcAbKG1tVXd3d2UWwAYJLGxserq6nLcRQ6UWwC20NjUJJfEBQ4AMEj2Pt82NjUZThJalFsAttDc0iI3xRYABpXH41FzS4vpGCFFuQVgCx0dHaYjAEDUcblcjnv+pdwCsIXOri7TEQAg+liWOjs7TacIKcotAFvo7Ox03I5dALA7S86bXKDcArCFzs5OiXILAIMqGAwycwsA4dDZ1aVAMGg6BgBElWAwyMwtAIRDR0cHyxIAYJBZlqUOZm4BIPTa2to44xYABpnH41ErR4EBQOi1Um4BYNB5PB61ckMZAIReV3e3XC6X6RgAEFVcLpe6urtNxwipAZfb3t5elZSUaO3atV84rrS0VGPHjlVJSYnq6uoONx+AKBEMBim3ADDIXC6Xgg7bzDugctvT06Pp06dr586dXziuvLxc69ev16ZNm7Ro0SKVlpaGJCQA5wsEAqLaAsDgi8pyK0mPP/64jj/++C8cs2rVKs2aNUtut1uTJ0/Whg0bDjsggOgQDAYlZm4BYFBF7cxtXFycCgsL+x3X1tamoqIiSXv+sHw+337HLVmyRIWFhfse7e3tBxEZgBMFOQYMESje79eZ27frzO3bFe/3m44DHJKoLLcDlZqa+plC29raut9xCxcuVEVFxb5HcnJyKGMAiEBuZm0BwAi321nnC4T0o5kwYYJWr14tSdq6dauys7ND+e4BOJjb7eb6XQAYZJZlUW73uuuuu7Ry5crPvGz69OnauHGjrrjiCp1//vm69tprDzsggOjg8XhEtQWAwee0chtzMIPLysr2/f7GG2/83Ou9Xq/eeOMNlZeXa86cORo/fvxhBwQQHdxuN9fvAsAgc+LM7UGV24Hwer2aMWNGqN8tAIfzxsdTbgFgkFmWJW98vOkYIeWsqg4gYqWmpCgQCJiOAQBRJRAIKDUlxXSMkKLcArCFFMotAAy6QCCg1LQ00zFCinILwBYSExO5fhcABpnL5VJiQoLpGCFFuQVgCwlerzwO29QAAHbndruV4PWajhFSfCcBYAsJCQlcvwsAg8ztdu95/nUQyi0AW0hISGBZAgAMMpfEzC0AhIPTnlwBICK4XMzcAkA4JCYmmo4AAFHHsizHPf9SbgHYQnpamoIcBQYAgyoQCCido8AAIPQyMzJkSZx1CwCDZO/zbWZGhuEkoUW5BWALqampio+PV29vr+koABAVent75fV6lcINZQAQei6XS1mZmZRbABgkvb29ysrIcNxJNZRbALaRM2QI5RYABklPb69ycnJMxwg5yi0A28jNzVUP5RYABkVvb69yKbcAED4FeXnM3ALAIOnt7VV+fr7pGCFHuQVgG9lDhsjt5mkJAAaD2+1WzpAhpmOEHN9FANjGkKwsyi0ADBK3262szEzTMUKO7yIAbKMgP1+WZZmOAQBRIRgMqrCgwHSMkKPcArCNgvx8BYNBLnIAgDDb+zybn5dnOEnoUW4B2EZKSooyMzLU1dVlOgoAOFpnV5cy0tMdd4GDRLkFYDPDiorU1d1tOgYAOFp3V5eGDxtmOkZYUG4B2MrIESOYuQWAMOvq7taoESNMxwgLyi0AWzly+HCJTWUAEHZfGj7cdISwoNwCsJWC/Hy5PR7TMQDA0dxutwoceIGDRLkFYDMF+fkKBAIcCQYAYWJZlgKBgCNPSpAotwBsprCgQN74eHWzqQwAwqK7u1ve+HhHnnErUW4B2ExMTIxGjhghX0eH6SgA4Ei+jg6NGjlSMTExpqOEBeUWgO2MPe44dXZ2mo4BAI7U2dmp4q99zXSMsKHcArCdo0eNktvN0xMAhIPH7dYxRx9tOkbY8N0DgO2MOPJIBYNBNpUBQIhZlqVgMKgRRx5pOkrYUG4B2M6woiI2lQFAGHR3dys+Pl5FRxxhOkrYUG4B2A6bygAgPJy+mUyi3AKwKTaVAUDodXZ2auyxx5qOEVaUWwC2NGb0aDaVAUCIud1ujT7mGNMxworvHABs6aujRysYDCoQCJiOAgCOEAgEFAwG9bUxY0xHCSvKLQBbysnJUWF+vtp9PtNRAMAR2n0+HVFQoJycHNNRwopyC8CWXC6XJp50ktra201HAQBHaGtr08STTjIdI+wotwBs6/ixY+V2uUzHAABHcLvdGldcbDpG2FFuAdjWV8eMYd0tAITA3vW2X3X4eluJcgvAxnJycnREYaHaWZoAAIelvb1dRxQWOn69rUS5BWBzE088kU1lAHCY2nw+nTJhgukYg4JyC8DWjh87Vqy6BYDD43a5NO6440zHGBSUWwC2Nq64WC6XSz09PaajAEBE6unpkUuKis1kEuUWgM2lpaVpbHGxmltaTEcBgIjU3NKiccXFSktLMx1lUFBuAdje1ClT1MvMLQAckt7eXk09/XTTMQYN5RaA7X39hBNkSRwJBgAHKRAIyLIsjT/+eNNRBg3lFoDtFRYU6EvDhqm1rc10FACIKK1tbfrS8OEqLCgwHWXQUG4B2J7L5dKZ3/iGfBwJBgAHxefzadoZZ8gVRbc9Um4BRISTxo+XLEuWZZmOAgARYe/z5UnjxxtOMrgotwAiwuijj1ZGRgYXOgDAALX7fMpIT9cxRx9tOsqgotwCiAgxMTEqOfNMtXAkGAAMSEtLi749bZpiYmJMRxlUAyq3paWlGjt2rEpKSlRXV7ffMX6/X3PmzNEpp5yi4uJirVu3LqRBAeDMvqNsgsGg4SQAYG97nyej6Qiwvfott+Xl5Vq/fr02bdqkRYsWqbS0dL/jVq5cqZiYGK1bt07Lly/XokWLQh4WQHT7ypgxKsjP59QEAOhHa2urCvPzNWb0aNNRBl2/5XbVqlWaNWuW3G63Jk+erA0bNux33NChQ/Wf//xHra2t+tvf/qbRX/CHuWTJEhUWFu57tLe3H/pHACBquFwuzZg+necMAOhHu8+nGWedFVWnJOzVb7lta2tTUVGRpD3fWA50FM/o0aOVk5OjBx54QCtWrND3vve9A77PhQsXqqKiYt8jOTn5EOMDiDanT5okiQsdAOBA9j4/7n2+jDb9rjBOTU39TKFtbW3d77i7775bF154oc4++2xZlqXRo0frX//6lzweT+jSAoh6w4cN0+ijj9bHO3ZoSFaW6TgAYDtNzc36yjHHaFjf5GS06XfmdsKECVq9erUkaevWrcrOzt7vOJ/Pp7fffluS9N5776m+vj4qp8IBhN+5Z5+trq4u0zEAwJa6urp0ztlnm45hTL/ldvr06dq4caOuuOIKnX/++br22mtVVlamsrKyz4y7+uqr9frrryslJUXf+ta3dN9998nt5qQxAKF36skny+PxqKenx3QUALCVnp4eedxunXryyaajGNPvsgSv16s33nhD5eXlmjNnjsYf4JaLoqIirV27NtT5AOBzhgwZosmnnKI1f/2r8vPyTMcBANuob2jQ6ZMmKSuKl20NaGrV6/VqxowZByy2ADDYzj/3XAWDQa7jBYA+wWBQwUBA582YYTqKUawbABCRxhUXq+iII9TU3Gw6CgDYQnNLi4qKijSuuNh0FKMotwAiktvt1kUXXKCOjg7TUQDAFjo6OnTRBRdE/Z6n6P7oAUS0qVOmKD4+Xp2dnaajAIBRnZ2dio+P19QpU0xHMY5yCyBipaWl6aySEjU2NZmOAgBGNTY26uySEqWlpZmOYhzlFkBEmzF9umRZ3FgGIGoFAgFZkmacdZbpKLZAuQUQ0Y4eNUpfGTNGDY2NpqMAgBENjY366pgxGjVypOkotkC5BRDRXC6X5s6apZ6eHo4FAxB1LMtST0+P5l10ETfD9qHcAoh4p06cqGFFRay9BRB1GpuaNKyoSKdE8Y1k/41yCyDixcTE6JLvfU8dHR3M3gKIGpZlqbOjQ/PnzlVMTL+XzkYNyi0AR5h6+ukampOjltZW01EAYFC0tLYqJydH3+D4r8+g3AJwhLi4OF38ve+pva3NdBQAGBRtbW26ZO5cxcXFmY5iK5RbAI7xrTPPVFpamtra201HAYCwamtrU3pamkqmTjUdxXYotwAcIykpSXMuvFAtLS2mowBAWLW0tup7s2YpKSnJdBTbodwCcJRzzjpLCV6v2n0+01EAICzafT4lJiTsucQGn0O5BeAo6enpumTuXDVxLBgAh2pqatLF3/ue0tPTTUexJcotAMc5/5xzlJGezskJABynpbVVmRkZOv+cc0xHsS3KLQDHSU5O1mU/+IFaW1s59xaAY1iWpdbWVl32gx8oOTnZdBzbotwCcKSzSkpUkJ/P8gQAjtHU1KSC/HxN/+Y3TUexNcotAEeKj4/XlZdeqnafT8Fg0HQcADgswWBQvo4OXbVggeLj403HsTXKLQDH+saUKTp65EjVNzSYjgIAh6W+oUGjjjpKZ0yebDqK7VFuATiWx+PRlZdequ7ubgUCAdNxAOCQBAIB9XR366oFC+TxeEzHsT3KLQBHO/mkk/T1E07Q7tpa01EA4JDsrq3V1084QRNOPNF0lIhAuQXgaC6XSz+85hq5XC51dXWZjgMAB6Wrq0sul0vX9z2PoX+UWwCO9+Ujj9ScmTNVV1/P0WAAIoZlWaqrr9ecmTP15SOPNB0nYlBuAUSFebNnKzsrS80tLaajAMCANDc3K2fIEH1/zhzTUSIK5RZAVEhJSdH1116r9rY2jgYDYHuBQEDtPp+uv/ZaLmw4SJRbAFHjG1OmaPzxx2v37t2mowDAF6rt20TG0V8Hj3Kax97cAAAgAElEQVQLIGrs3ZRhSWwuA2Bbe5+fFl11FZvIDgHlFkBUOWrECM2eOVO1dXVsLgNgO3s3kc2+8EIdNWKE6TgRiXILIOrMnztXw4qKVFdfbzoKAHxGXX29hh1xhObPnWs6SsSi3AKIOklJSVr8ox+pt6dH3d3dpuMAgCSpu7tbvb29WlxaqsTERNNxIhblFkBUGnvccbroggtYngDAFizLUm1dnS664AIVH3us6TgRjXILIGpdesklKjriCJYnADBu73KESy++2HSUiEe5BRC1EhMTWZ4AwDiWI4QW5RZAVGN5AgCTWI4QepRbAFHv0ksu0bAjjlBdXZ3pKACiTG1dnYYXFbEcIYQotwCiXmJiou5YvFhBy5Kvo8N0HABRwufzybIs3bF4McsRQohyCwCSxowerYVXXKGGhgYFAgHTcQA4XCAQUENjo6678kqNPuYY03EchXILAH3+57vf1emnnabq6mrW3wIIG8uyVF1TozMmTdL5555rOo7jUG4BoI/b7dZPbrxRQ4cOVX1Dg+k4AByqvqFBQ3Ny9OMbbpDbTRULNf5EAeBTMjIydOctt6i3t1ednZ2m4wBwmM7OTvX29uquW29VRkaG6TiORLkFgP9SfOyxuuL//T/V1dez/hZAyAQCAdXV1+vKSy/VcV/7muk4jkW5BYD9mHPhhTr5pJNYfwsgJCzLUnV1tU4+6STNnjnTdBxHo9wCwH54PB797Cc/UWFBgWo5/xbAYaqtq9MRhYX62U9+Io/HYzqOo1FuAeAAMjMzteSuuxQTE6PmlhbTcQBEqOaWFsXGxOh/77xTmZmZpuM4HuUWAL7AUSNG6M7Fi+Vrb1dnV5fpOAAiTGdnp3zt7brzllt01IgRpuNEBcotAPTjtFNO0eWXXqq6ujr5/X7TcQBECL/fr/r6el1+6aU6deJE03GiBuUWAAZg3kUXqeTMM1VdU8MGMwD92ntRwzfPPFPzLrrIdJyoQrkFgAFwu936yQ03aMzRR6u6utp0HAA2V11drTHHHKOfcFHDoONPGwAGKDExUb/o2xCyu7bWdBwANrW7tlZZmZn6xR13KDEx0XScqDOgcltaWqqxY8eqpKREdf0cifPaa6/pzDPP5Md2ABwpLzdXD/zv/youNlYNjY2m4wCwmYbGRsXFxemBJUuUl5trOk5U6rfclpeXa/369dq0aZMWLVqk0tLSA45tamrSlVdeqaVLl8rlcoU0KADYxaiRI3XfPffI7/erpbXVdBwANtHS2iq/36/7fv5zjTzqKNNxola/5XbVqlWaNWuW3G63Jk+erA0bNhxw7KWXXqrCwkI999xz2rVrV0iDAoCdjCsu1t233qr29nb5fD7TcQAY5vP51N7errtvvVXjiotNx4lq/ZbbtrY2FRUVSZJcLtcBn8TXrVunt956S/fdd58mTZqkadOmqfEAP7JbsmSJCgsL9z3a29sP40MAADMmn3aaSn/4QzU2NamLM3CBqNXV1aXGpiaV/vCHmnzaaabjRL1+y21qaupnCm3rAX4E9/e//12zZ8/WqFGjVFxcrDFjxmjTpk37Hbtw4UJVVFTseyQnJx9ifAAw69yzz9Zl8+ertq5Ovb29puMAGGQ9vb2qq6/XZfPn69yzzzYdBxpAuZ0wYYJWr14tSdq6dauys7P3O2706NHaunWrpD23cWzevFlHHnlkCKMCgD3NnzdPM887T9U1NVzyAEQRv9+vmpoaXfDd72r+vHmm46BPv+V2+vTp2rhxo6644gqdf/75uvbaa1VWVqaysrLPjJs2bZoKCwt1yimnaNy4cbr44os1gmvmAEQBl8ulRVdfrbO/9S1VVVdTcIEo4Pf7VVlVpe98+9tadPXVbKS3EZc1gDO7urq6VF5eroKCAo0fPz7kIQoLC1VRURHy9wsAg8nv92vx7bfrpRUrlJ+fr5iYGNOREGbxfr8m7dghSVo7fLi6+ZxHBb/fr6rqak3/5je1uLSUr/VBcDBdcUCfDa/XqxkzZhxWKABwupiYGP30Rz9SIBDQildeUX5eHt/0AIfx+/2qqqpSybRpFFub4oYyAAih2NhY3fqTn6hk6lRVVVWxRAFwkL0ztiXTpunWH/+YYmtTlFsACLG9BXd6SQlrcAGH2LvGdvo3v6lbf/xjxcbGmo6EA+CfHAAQBrGxsVpcWiq3260XXn5Zubm5iuObIRCRenp7VVNToxnTp+snN97IjK3N8dkBgDCJiYnRzTfdpISEBD37xz8qJztbXq/XdCwAB6Grq0u1dXWaed55WnT11RTbCMBnCADCKCYmRjded52yMjP10NKlyszIUFJSkulYAAbA5/OpsalJl//gB5o/bx7HfUUIyi0AhJnL5dIPvv99ZWVl6fa775Y/EFBaaqrpWAC+QEtrq9rb2/WTG2/k5rEIQ7kFgEFy7tlnKzM9XTfcfLP8fr+yMjNNRwKwHw2NjfL7/frfO+7Q5NNOMx0HB4nTEgBgEE0+7TQ9fO+9crvd2l1bazoOgP+yu7ZWHrdbD997L8U2QlFuAWCQjSsu1rIHH1Raaqqqqqo0gIsiAYSZZVmqqqpSemqqlj30kMYVF5uOhENEuQUAA0aNHKnfLF2qo0eOVEVlJWfhAgb5/X5VVFbq6FGj9OTSpRp51FGmI+EwUG4BwJC83FwtffBBfXPqVFVVV6uzq8t0JCDqdHZ2qqq6Wt+cOlVLH3hAebm5piPhMLGhDAAMSkxM1O0//alGfPnLevCRR5SUnKz0tDTTsYCo0NzSIl97u66+/HLNnTVLbjdzfk7AZxEADHO73bp4zhz98u67FQgEtLu2lnW4QBhZlqWa3bsVDAR0789/ru/Pnk2xdRA+kwBgE6edcoqefPRR5WRnq7KyUoFAwHQkwHECgYAqKyuVN3Soyh59VKdOnGg6EkKMcgsANnLUiBH6zWOP6aQTT1RlVZU6OztNRwIco7OzU5VVVTrpxBNV9uijOmrECNOREAaUWwCwmczMTP3qnnt0zeWXq6m5WXX19SxTAA6DZVmqq69XU3Ozrr3iCt3/i18ok0tUHItyCwA2FBMTo3mzZ+vxBx9UeloayxSAQxQIBFRZVaX0tDQte+ghzb3oInk8HtOxEEaUWwCwseJjj9XyJ57Q5FNPVWVVlXwdHaYjARHD5/OpsqpKk089VcufeELHfe1rpiNhEFBuAcDmMjIy9Is779RN112ntrY2TlMA+mFZlnbX1qqtvV03XXedfnHHHcrIyDAdC4OEcgsAEcDtduuC885T2SOPKC83VxWVleru7jYdC7Cd7u5u7aqoUH5urp589FFdcN55HPMVZfhsA0AEGTN6tJY/8YTmXHih6hsaVFtXxywuoD2ztbV1dapvaNDciy7SM088odHHHGM6Fgyg3AJAhElMTNTCK6/UsoceUm5ODrO4iHrd3d2qqKxUbk6Ofv3ww7r2iiuUmJhoOhYModwCQIQqPvZYPfPEE5o9c6bq6+uZxUXU+fRs7ZwLL9TysjI2jYFyCwCRLCkpSddddZWWPfzwvlncrq4u07GAsOvq6to3W7vsoYe08Morma2FJMotADjC3lncebNnq6mpSdXV1ZyLC0cKBAKqrq5WU1OT5s2ereVlZSo+9ljTsWAjlFsAcIikpCRdfdllWl5WprHHHaeqqio1NTWxVAGOYFmWmpqaVFVdrXHFxVpeVqarL7uM2Vp8DuUWABzmqBEj9Oj99+ueO+5QYkICSxUQ8fYuQUhMSNA9t9+uR371Kx01YoTpWLCpGNMBAACh53K59I0pU3TiCSfoiaee0m+WL5dlWRqak8PVo4gYgUBAu2tr5XK59P3ZszVv9mylpKSYjgWbo9wCgIOlpKToqssu07emTdM9996rv731luLi4zUkK4uD7WFbwWBQ9Q0N6unu1tfHj9cPr7lGR37pS6ZjIUJQbgEgCnz5yCP18H33af3GjfrVww/rw23blJyUpIyMDLlcLtPxAEn/t67W19GhUUcdpasWLNCEE0/k7ygOCuUWAKKEy+XSySedpBPHj9err72mXz38sCoqK5Wamqq01FTT8RDlWlpb1draqoL8fN180006Y/JkltDgkFBuASDKeDwenXnGGZp0yil6qbxcDz32mHZVVCgjI0PJSUmm4yHKtPt8ampqUmZGhn58ww06q6REcXFxpmMhglFuASBKxcfH67vf+Y6mnXGGfv/881r25JOqaG5WWmoqm3YQdm1tbWppbVViQoKuWrBA559zjpKTk03HggNQbgEgyiUnJ+v7c+bonLPO0vMvvqjfPPOMdlVUKCUlRWmpqax3RMhYlqWW1la1tbUpPS1NVy1YoBnTpys9Pd10NDgI5RYAIElKT0/X9+fM0f+ce65eXrVKy558UpWVlUpITFQmG89wGCzLUmNTkzo7OpSTk6OrFixQydSpSmIZDMKAcgsA+IykpCSdf845+s63v62/rFmjpWVl+mTnTsXFxSkrM5NNPhiwQCCghsZG9fT0aFhRkX4wb57OmDyZNbUIK8otAGC/4uLi9K1p03TmGWdo3Ztv6omnn9a/tmyRJGVmZiohIcFwQthVZ2enGhsbZUn66pgxmnfRRTrl5JMVE0PtQPjxtwwA8IViYmI0+bTTNOnUU7V12zb96cUX9cKKFWpobFRiYqIy0tNZsgAFg0E1t7Soo6ND8fHxOm/GDM046yyNGjmSvx8YVC7LsizTIQoLC1VRUWE6BgBggFpaWvTKmjV6+tlntXPXLrndbg3Jyoq6HzfH+/2atGOHJGnt8OHqjsKZyZ6eHtU3NCgYDGrYEUdo1gUXaOqUKUpLSzMdDQ5yMF0x+r4KAQCHLS0tTefNmKFzzz5b/9i8WX94/nmtef11BYJBeb1eZaSnszbXwQKBgJqam9XV1SWP263TTztN551zjsYVF3OtM4yj3AIADpnb7dYJ48bphHHjVF9fr3Xr1+u5F17Qlg8+kCQlJyUpNTWVwuMAwWBQra2tavf5JElfOeYYnXP22Tr15JOVlZVlOB3wfyi3AICQGDJkiGacdZZmnHWWdnzyida8/rqef/FFVVZVSdoz25uclMT6ywhiWZbafT61tLRIkgrz8zVv9mydPmmShhUVGU4H7B9rbgEAYWNZlra8/75eWb1af165Uk3NzZL2HDeWmpIS8UsXnLjmNhAIqLWtTb6+GdqM9HR9e9o0TT39dI0ZPZp/nMAI1twCAGzB5XLpK2PG6Ctjxuiqyy7TBx9+qA1//7tWvvqq/rNjh1wul2JjY5WelhZ1m9HspKenR80tLert7ZVlWfrS8OGaNnOmJnz96zrm6KMj/h8hiC6UWwDAoIiJidFXv/IVffUrX9H8efNUUVmpv731ll5Zs0Zvb94sS1LQspSSlKTk5GQKVRgFAgG1t7erzeeT2+WSS9K44mJNPf10jT/+eBUWFDBDi4hFuQUADDqXy6UjCgt1RGGhvjtjhlpaWvSPzZu1afNmvbFhg3ZVVMjtdisYDColJUXJSUmU3cMQCATU7vOpra1t359r0RFH6Nvf/KaOLy7WuOJiju6CY7DmFgBgO7W1tXpvyxb9Y/NmrVu/XhVVVftKWUJCgpISExUfH298dtGOa24ty1J3d7d8HR3q7Ozc9+dWmJ+vUyZM0LjiYn11zBjl5OSYjgoM2MF0RcotAMD2du/erffef1/vf/CB3n73XW3dtk3d3d1yu90KGCy8psvtfxdZT1+RjY+P16iRIzX22GM1+phj9DXKLCIcG8oAAI4ydOhQDR06VGdMnixJ8vv92rlrl7Z//LE++PBDbf7nP7V12zbVNzTI4/EoGAxKkrzx8fJ6vfJ6vRG9rCEQCKizq0vdXV3q6u6WtOeM4UAgIO+niuzRo0ZpxJFHquiIIxRjg1lkwAT+5gMAIk5MTIyO/NKXdOSXvqSpp58uaU/hraisVFV1tSqrqvSfHTu0dft27fjkE9Xs3i1J+35EHwwGFRsbq7jYWMV+6mGiAAcCAfX29qq3t1c9fb/29vbK7XbvyyvtOZLrmKOP1qgRI/Sl4cNVkJ+v/Lw8FRYUUGSBT+GrAQDgCDExMRo+bJiGDxv2ude1tbWpqrpaFZWVamhsVG1dnaqqq1VTW6va2lo1NDWpq6tLkuTxePYsbbCsPSc49JVhy7Lk8Xj2vd7lcikhEFBPT48kqaGhQR19N7FZliXLshQIBBQIBORyufaVVZckuVz7Xi9JXq9XWRkZysnJUW5OjvLz8pSTna2szEwVFhQoPy9PKSkpg/HHCES8AZXb0tJSlZeXKzc3V08++aSys7O/cPyNN94or9erxYsXhyIjAACHJSUlRaNSUjRq5Mj9vt6yLLW1tamxqUnNLS3q6FvD2tnVte/Xjs5Otba0qLWtTV3d3QoGg/J0dip90yZZlqWxxx6rQELCvhLrjY9XakqKUtPSlJiQoASvVwmf+jUxMVHpaWnKzMhQSkqK8c1xgFP0W27Ly8u1fv16bdq0SWvXrlVpaakee+yxA47fsGGDHnzwQV133XUhDQoAQLi4XC6lpqYqNTX1oN6uu7FR795wgyTpoltuUXxmZjjiATgI7v4GrFq1SrNmzZLb7dbkyZO1YcOGA47t6OjQ1VdfrRv6vtAPZMmSJSosLNz3aG9vP/jkAAAAwH/pt9y2tbWpqKhI0p5/2e69a3p/fvjDH+raa69VYWHhF77PhQsXqqKiYt8jOTn5IGMDAAAAn9dvuU1NTf1MoW1tbd3vuFdffVWNjY2aOXNm6NIBAAAAB6HfNbcTJkzQ6tWrNWPGDG3duvWAm8n++Mc/6uOPP9akSZNUU1Ojrq4uDR06VAsWLAh5aAAAAGB/+r2hrKurSxMnTtSJJ56odevW6fLLL1dcXJwkae7cuft9m7KyMu3YsWPApyVwQxkAIBJ9ekPZsXffzYYyIExCekOZ1+vVG2+8ofLycs2ZM0fjx4/v950eqPQCAAAA4TSgc269Xq9mzJgR7iwAAADAYel3QxkAAAAQKSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcAzKLQAAAByDcgsAAADHoNwCAADAMSi3AAAAcIwBldvS0lKNHTtWJSUlqqur2+8Yv9+vefPmacqUKTrhhBP08ssvhzQoAAAA0J9+y215ebnWr1+vTZs2adGiRSotLT3guNGjR2vNmjV65plntHDhwpCHBQAAAL5Iv+V21apVmjVrltxutyZPnqwNGzbsd9z06dN1/fXXS5JqamqUn58f2qQAAABAP/ott21tbSoqKpIkuVwu+Xy+Lxzf1dWla665Rj/72c8OOGbJkiUqLCzc92hvbz/I2AAAAMDn9VtuU1NTP1NoW1tbDzjWsixdfPHFuvDCC3XyyScfcNzChQtVUVGx75GcnHyQsQEAAIDP67fcTpgwQatXr5Ykbd26VdnZ2Qcce8011ygrK0vXXXdd6BICAAAAA9RvuZ0+fbo2btyoK664Queff76uvfZalZWVqays7DPjXnnlFd1///169913NWnSJE2aNEmBQCBcuQEAAIDPielvgNfr1RtvvKHy8nLNmTNH48eP3++4qVOnKhgMhjwgAAAAMFD9lltpT8GdMWNGuLMAAAAAh4UbygAAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYlFsAAAA4BuUWAAAAjkG5BQAAgGNQbgEAAOAYMaYDAAifOkkfSeqUlCDpKEnZRhMBABBelFvAYSxJmyX9QdJf+l7m6nu5JH1D0nmSivteDgCAk1BuAQcJSnpAUpn2FNchkuI+9foeSa9IWiVprqQrxNokAICzUG4Bh7C0p9gukzRUUvx+xsRJypfU3TdOkq4UM7gAAOdg0gZwiM3aM2N7oGL7afF948r63g4AAKeg3AIO8QftmYHtr9juFd83/o9hSwQAwOCj3AIOUKc9m8eGHOTbDdGeNbh1IU8EAIAZlFvAAT7q+zXuC0d93t7xH33hKAAAIgflFnCATu1/U1h8Y6POnD9fZ86fr/jGxv2+ravv7QEAcALKLeAACfq/c2wPltX39gAAOAHlFnCAo/p+7TnIt+v+r7cHACDSUW4BB8jWnpvH6g/y7RokTRVX8gIAnINyCzjEedqzxKC7v4F9uvvGfzdsiQAAGHyUW8AhirXnSt3d6r/gdveNm9v3dgAAOAXX7wIO4ZJ0Rd/vy/r+u/C/xnRrz1IES9LFfeO5ehcA4CSUW8BB3JKulDRRe24eWyepS3sK7G7tOfLrTO1ZilAsii0AwHkot4DDuCSN7XtUSfqnpICkOyWNEpvHAADORrkFHCxLUmbf74+VFG8wCwAAg2FAG8pKS0s1duxYlZSUqK7uwLfQP/TQQzr22GM1ZcoUffQRF3oCAABgcPVbbsvLy7V+/Xpt2rRJixYtUmlp6X7Hvffee3rwwQe1ceNGPfroo7rqqqtCHhYAAAD4Iv0uS1i1apVmzZolt9utyZMn6+qrr97vuNWrV2vGjBlKSEjQUUcdpaqqKgUCAXk8ns+NXbJkiZYsWbLvv9vb2w/jQwBwIPGZmRq/dKnpGIBj8TUG2E+/M7dtbW0qKiqSJLlcLvl8vn7HSVJSUtIBlzAsXLhQFRUV+x7JycmHkh0AAAD4jH7LbWpq6mcKbWtr64DGtbW1ybKsEEQEAAAABqbfcjthwgStXr1akrR161ZlZ+//IKFPj2ttbVVNTc0BxwIAAADh4LL6mV7t6urSxIkTdeKJJ2rdunW6/PLLFRcXJ0maO3fuZ8aWlJQoJydH//73v3XKKafojjvuGFCIwsJCVVRUHNpHAAAAAEc7mK7Yb7mV9hTc8vJyFRQUaPz48QccFwgEtHLlSiUkJGjKlClhCQwAAIDoEvJyG26UWwAAABzIwXTFAV3iAAAAAEQCyi0AAAAcg3ILAAAAx6DcAgAAwDEotwAAAHAMyi0AAAAcg3ILAAAAx6DcAgAAwDEotwAAAHAMyi0AAAAcg3ILAAAAx6DcAgAAwDEotwAAAHAMyi0AAAAcw2VZlmU6RExMjHJzc03HAByrvb1dycnJpmMAjsXXGBBeNTU18vv9AxobE+YsA5Kbm6uKigrTMQDHKiws5GsMCCO+xoDwKiwsHPBYliUAAADAMSi3AAAAcAzP4sWLF5sOIUknnXSS6QiAo/E1BoQXX2NAeA30a8wWG8oAAACAUGBZAgAAAByDcgsAAADHoNwCEaympkbnn3/+Z162fv16zZo1q9+33bZtm77zne/o4osv1pYtW8IVEXCMnp4e+Xw+0zEA9MMW59wCODQej0c7d+6UJK1du1bvvfeeTjrpJMXGxu4b88477+j3v/+93G63AoGA5s+fr+HDhys2NlZer1c33XSTGhoaFAwG5Xbz713gQN577z2VlJRo9+7dn3tdcXGx0tLSVF1drdNPP10PPfSQgYQAJGZugYjmcrn2/d7n86murk6S1NLSoqeeekqXXnqpCgoKdPbZZ+uFF17Q9OnT9c4772jSpEmaOXOm1qxZo0suuUSLFi3S22+/berDACJGQUHBfl8eGxurtWvXavr06SopKdEll1yir371q5o4caImTpyooUOH6s033xzktEB0YuYWiFC//e1vdc899+jf//63jjvuOF1//fXauHGjXnvtNe3atUsTJkzQ2rVrlZ2drezsbCUlJWnChAnq7OzUiBEjlJqaqhtvvFHPPvusPvjgAw0bNsz0hwTYimVZ6u3tVVxcnCSpq6tLiYmJn3l9T0+P4uPj9/3U469//atuueUWrVy5Uvfff78mTZokSZo7d67i4+MH/WMAohEzt0CEmjVrll599VWNGTNGv/71r3X9/2/v/kLZ3eM4gL+3kWn5s5UbSqnVSqFY9qwVyhQlJYpWXOxKmvzr4UpyI0KtZ1FCLcUFLsQuWFNkbhatKGTKSkoro3YhG/a7OWfn9+v8Lk6dc4x5v2oXz3efi/fn7rPv99nziCKUSiX6+/tRU1MDURSRlpaGi4sLGI1GnJ+fw2g04v39HR0dHQiFQvD5fLi9vUV7ezuur6+T3RLRpxIMBmEwGGAwGCAIAqxWK46OjiAIQuJTWVmZqL+/v4dSqYRKpUpiaiLizi1RCigvL8fi4iJ8Ph8KCwsT63K5HDqdDgcHB6iqqsL+/j4yMjLgcrkwMzODh4cH1NXVYX19HSUlJUnsgOjzKSoqgt/vT1zb7XYMDQ1hcnIS1dXVf6tXKBSIRCKIRCIAgJ6eHuTk5AAAAoEAbDbbxwQn+ua4c0uUIn6+//bt7Q1NTU0oKyuDXC5PHKv+eSwaCARwfHyM+vp6aLVaqNXqpGQm+kq2trYgSRIkSfrt93l5ebDZbJifnwcAOBwOeL1eeL1eNDQ0fGRUom+Nwy3RFxWPx3F2doZgMDmedykAAAH1SURBVAhBEHB1dQUAeH19hUwmw9TUFCRJwvPzM6LRKJ6enmC1WjE3NwdRFDE7OwuZTIaxsTE0NzcjFAoluSOiz2t3dxfZ2dno6upCOBzGxsbGb+v0ej18Pt8HpyOin3G4JfqiVldXMTIygvHxcezs7KC4uBg3NzcQBAHLy8vQ6XRwOBywWCwwGo3o7u7GxMQEVCoVnE5n4ri0oqICAwMDcDqdyW2I6JPy+/3o6+uDxWIBACwtLWF4eBgej+eXOo/Hg9bWVphMpmTEJKI/yOLxeDzZIYjo33t8fERbWxvC4XBiTaPRYGFhAQUFBUhL++sW+3g8DpPJhJaWFgwODiYjLtGXsLa2htHRUUiSBFEUMT09DbPZjNPTUzQ2NqKzsxOiKKK2thZutxvhcBharRY2mw1erxe5ubkAgMvLS7hcLuj1+iR3RJT6+IcyohShVqvhdrv/Ua1MJsPh4SEUCsX/nIro69rc3MTKygr29vaQn5+P7e1t2O12mM1mlJaW4uTkBL29vbi7u0MsFoNGo4FGowEAxGIx2O32Xx4FFo1Gk9gN0ffBnVsiIqL/WCgUQlZWFjIzMwEALy8vSE9P51sAiT4Ah1siIiIiShn8CUlEREREKYPDLRERERGlDA63RERERJQyONwSERERUcrgcEtEREREKeMHhMAFtzC3W6oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 840x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "earth_t=pow(earth,1/4)\n",
    "earth_color=(0,1,1)\n",
    "base_sun=100000\n",
    "fig, ax = plt.subplots(1,1,figsize=(10.5,7.5), facecolor='white', dpi= 80)\n",
    "ax.vlines(x=1, ymin=0, ymax=earth_t, color='firebrick', alpha=0.7, linewidth=2)\n",
    "ax.scatter(x=1, y=earth_t, s=earth_t**2*base_sun, color=(0,1,1), alpha=0.7, cmap='inferno')\n",
    "\n",
    "ax.vlines(x=2, ymin=0, ymax=sun, color='firebrick', alpha=0.7, linewidth=2)\n",
    "ax.scatter(x=2, y=sun, s=base_sun, color=(0,earth_t,earth_t), alpha=0.7)\n",
    "\n",
    "ax.set_xticks([0,1,2,3])\n",
    "ax.set_xticklabels([None,\"地球\",\"太阳\"])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 289,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(1, 20, '太阳')"
      ]
     },
     "execution_count": 289,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABBEAAATeCAYAAACfRbwKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAMTQAADE0B0s6tTgAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3X+o1nfdx/G3P0IvDjv2xw4b6+Av9I80OKOWh5ySHjzpYRoYxBxsQyMpIUQOQRBrBbGSIoOBkuBCioKiIf0gXXbmXTRn6+QPLMc0w8GZ5+AJNz2JbJwf9x83HUjXvVfnnJ3d3Xs84AvHz/W9rut9/aU+z+f7vWaMjY2NFQAAAMBbmPlODwAAAAD8ZxARAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgMjsd3qAf2XmzJk1Z86cd3oMAAAA+H9tdHS0Xn/99ejc/7MRYc6cObWus/OdHgMAAAD+Xzt18mR8rssZAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAACRSUeEgwcP1qc//emqqjp//nytWLGiVq5cWfv37x8/Z9++fdXW1lYdHR114cKFyb4lAAAA8A6YPZkn//Wvf61vfetb9dxzz1VV1SOPPFK7d++utWvXVmdnZ3V1ddW1a9dq79691dvbW319fbVz5846fPjwlAwPAAAATJ8J70QYHR2thx9+uJYvX17f+9736urVq/XKK69UR0dHzZgxo9avX1/Hjh2rnp6e2rx5czUajVq6dGldvny5RkZGpvIzAAAAANNgwhHhBz/4QY2OjtY3vvGNWr58eX3oQx+q+fPnjz8+b9686u/vr6GhoX9ab2pqqsHBwdteb8+ePdXa2jp+DA8PT3Q0AAAA4G0w4Yjwwgsv1Gc+85maP39+rV27tt773vfWqVOnxh8fGhqqsbGxam5urhs3bty2fqvu7u7q6+sbP2bPntSVFgAAAMAUm3BEWLZsWb300ktVVTU4OFgDAwPV2tpa/f39VVXV29tbixcvrpUrV1ZPT09VVV2/fr0GBgaqpaVlCkYHAAAAptOEf92/bdu22rFjR330ox+tK1eu1O7du+s973lPbdy4sdrb2+v06dN14MCBampqqtHR0dq6dWtdvHixtm/fbpcBAAAA/AeaMfZm1xZMwrlz5+rs2bPV1dVVzc3NVVU1MjJSR44cqUajUR0dHdHrNBqNWtfZOZWjAQAAALc4dfJk9fX1RedOeUSYKiICAAAAvP3+nYgw4XsiAAAAAO8uIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAiIgAAAAAREQEAAAAICIiAAAAABERAQAAAIiICAAAAEBERAAAAAAiIgIAAAAQEREAAACAyKQiwpIlS2rNmjW1Zs2aeuyxx2pwcLBWr15dq1atqscff3z8vEOHDlVbW1utXr26Tpw4MemhAQAAgOk3e6JP/Mtf/lL33ntv/eQnPxlfe/DBB2vbtm31qU99qh599NE6fvx4LVmypHbt2lV//OMfa+bMmbVhw4Z64YUXpmR4AAAAYPpMOCL89re/rZMnT9b9999fo6Oj9eSTT1ZPT08dPHiwqqo2bdpUR48erStXrtTq1avrzjvvrKqqlpaWevnll2vBggVT8gEAAACA6THhyxna2trqV7/6VT333HP1ta99rT7/+c/X3Llzq9FoVFXVvHnzqr+/v4aGhmr+/Pnjz/vH+q327NlTra2t48fw8PBERwMAAADeBhOOCMuXL68lS5ZUVdUHP/jBevHFF2vWrFnjjw8NDdXY2Fg1NzfXjRs3blu/VXd3d/X19Y0fs2dPeJMEAAAA8DaYcETYunVrPfPMM1VV9aMf/ajuu++++sAHPlC9vb1VVdXb21uLFy+u9vb2+s1vflNjY2M1MjJSZ86cqUWLFk3N9AAAAMC0mTH2ZtsCAhcuXKgtW7bUG2+8Ua2trfWd73ynLl26VDt27KgNGzbU008/Xc8//3zdc889tWPHjhoYGKjh4eG644476oc//OFbvn6j0ah1nZ0TGQ0AAAAInTp5svr6+qJzJxwR/pVLly7ViRMnau3atXXXXXeNrz/77LN18+bN6urqqpkz33oDhIgAAAAAb79/JyJM+Y0HFi5cWAsXLrxtvaOjY6rfCgAAAJhGE74nAgAAAPDuIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQGRKIsKWLVvq4MGDNTg4WKtXr65Vq1bV448/Pv74oUOHqq2trVavXl0nTpyYircEAAAAptmkI8KPf/zj+tnPflZVVZ/73Odq27Zt9bvf/a4uXbpUx48frytXrtSuXbuqp6enfvrTn9bOnTsnPTQAAAAw/WZP5skDAwP1zW9+s3bs2FFVVT09PXXw4MGqqtq0aVMdPXq0rly5UqtXr64777yzqqpaWlrq5ZdfrgULFkxucgAAAGBaTWonwmc/+9n69re/XXfccUdVVc2dO7cajUZVVc2bN6/6+/traGio5s+fP/6cf6zfas+ePdXa2jp+DA8PT2Y0AAAAYIpNOCI89dRT9f73v79WrVo1vjZr1qzxn4eGhmpsbKyam5vrxo0bt63fqru7u/r6+saP2bMntUkCAAAAmGIT/p/6oUOH6rXXXqs1a9bUpUuXau7cufW3v/2tent767777qve3t5avHhxtbe315e//OUaGxur0dHROnPmTC1atGgqPwMAAAAwDSYcEX7xi1+M//yVr3ylFi5cWIsWLapHH320NmzYUE8//XQ9//zzdffdd9dHPvKR+sQnPlHDw8O1atWquvvuu6dkeAAAAGD6zBh7s2sLJuHSpUt14sSJWrt2bd11113j688++2zdvHmzurq6aubMt76KotFo1LrOzqkcDQAAALjFqZMnq6+vLzp3ym88sHDhwlq4cOFt6x0dHVP9VgAAAMA0mtS3MwAAAADvHiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEJlURLhx40b9+te/rj/96U9TNQ8AAADwf9SEI8LNmzdr3bp1dfz48dq1a1c9+eSTdf78+VqxYkWtXLmy9u/fP37uvn37qq2trTo6OurChQtTMjgAAAAwvWaMjY2NTeSJv//97+vKlSu1adOmOnv2bHV3d9f169fr61//eq1du7Y6Ozvru9/9bl27dq22bNlSvb291dfXVzt37qzDhw+/5es3Go1a19k5kdEAAACA0KmTJ6uvry86d/ZE36S9vb2qql566aV64okn6pFHHqkvfvGL1dHRUVVV69evr2PHjtWrr75amzdvrkajUUuXLq3Lly/XyMhIzZo1a6JvDQAAALwDJn1jxWeeeaZefPHFmjFjRs2fP398fd68edXf319DQ0P/tN7U1FSDg4O3vc6ePXuqtbV1/BgeHp7saAAAAMAUmvBOhH/YuXNnbdiwodavX1/Nzc3j60NDQzU2NlbNzc1148aN29Zv1d3dXd3d3eN/bjQakx0NAAAAmEIT3omwd+/e+tKXvlRVVVevXq0FCxZUVVV/f39VVfX29tbixYtr5cqV1dPTU1VV169fr4GBgWppaZns3AAAAMA0m/BOhG3bttXDDz9c999/f82ZM6f27t1bZ86cqY0bN1Z7e3udPn26Dhw4UE1NTTU6Olpbt26tixcv1vbt22v27ElvgAAAAACm2YS/neFfOXfuXJ09e7a6urrGL28YGRmpI0eOVKPRGL/x4lvx7QwAAADw9vt3vp1hyiPCVBERAAAA4O3370SESX87AwAAAPDuICIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABEZr/TAwAATKU5w8O15pVXqqrqv973vnp9tn/uAMBUsRMBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACIiAgAAABAREQAAAICIiAAAAABERAQAAAAgIiIAAAAAEREBAAAAiIgIAAAAQEREAAAAACITjgh///vf6+Mf/3h97GMfqw9/+MP1hz/8oc6fP18rVqyolStX1v79+8fP3bdvX7W1tVVHR0dduHBhSgYHAAAAptfsiT7x+9//fj300EP10EMP1dGjR+uxxx6r1157rXbv3l1r166tzs7O6urqqmvXrtXevXurt7e3+vr6aufOnXX48OGp/AwAAADANJhwRNixY8f4zwMDA3XPPffUn//85+ro6KiqqvXr19exY8fq1Vdfrc2bN1ej0ailS5fW5cuXa2RkpGbNmjX56QEAAIBpM+l7IgwODtYTTzxRW7durfnz54+vz5s3r/r7+2toaOif1puammpwcPC219mzZ0+1traOH8PDw5MdDQAAAJhCk4oIb7zxRj344IP11a9+te699966cePG+GNDQ0M1NjZWzc3Nb7p+q+7u7urr6xs/Zs+e8CYJAAAA4G0w4YgwMjJSW7ZsqQceeKA++clP1rx586qqqr+/v6qqent7a/HixbVy5crq6empqqrr16/XwMBAtbS0TMHoAAAAwHSa8K/7n3rqqfrlL39ZV69erZ///OfV0tJSX/jCF2rjxo3V3t5ep0+frgMHDlRTU1ONjo7W1q1b6+LFi7V9+3a7DAAAAOA/0IyxN7u2YBLOnTtXZ8+era6urmpubq6q/9m1cOTIkWo0GuM3XnwrjUaj1nV2TuVoAMC7wJzh4VrzyitVVfVf73tfve6XFwDwvzp18mT19fVF507536rLli2rZcuW/dParFmz6oEHHpjqtwIAAACm0aS/nQEAAAB4dxARAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIgAAAAAREQEAAACIiAgAAABAREQAAAAAIiICAAAAEBERAAAAgIiIAAAAAEREBAAAACAiIsB/t3f3QVrXhd7HP7vLriwolMotiHGUlMwhLTQztSOY+EDZOeQcs0zHTO9TRqbIqDOmY+cwpf9gYlp6skabPHdqD9ODKwW1N5Bstj4gJ7uVUtRVNEzU5WmXfbj/QFYRhG+6XPvg6zWz41y/63tdv+/vDy+d9/X9fS8AAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQFNr9RrAAAbP0lEQVQAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAibykibNy4MdOmTUtjY2OS5NFHH83hhx+eI488MjfeeGPPuBtuuCGHHHJIjj322CxfvvwtTRgAAADoG0Pe7Avb29vziU98Ii0tLT3HzjjjjFx11VWZMmVKpk6dmpNOOikvvfRSrr/++jQ3N6elpSXnn39+GhoaemXyAAAAQOW8pZUI3/3ud3PYYYclSV588cU8/fTTOfbYY1NVVZUTTjghv/vd77JgwYJMnz499fX1OeCAA/LMM8+ks7OzVyYPAAAAVM6bjgh1dXXZZ599eh63trZm3LhxPY9HjhyZlStXbnV8+PDhWbVq1VbvN2fOnOyzzz49fx0dHW92agAAAMBO0GsbK44YMSJr167tedza2pru7u43PP56M2fOTEtLS8/fkCFv+k4LAAAAYCfotYgwcuTIJMnKlSuTJM3NzRk/fnyOPPLILFiwIEny8ssv59lnn82oUaN667QAAABAhfTq1/2XXHJJPv7xj+dDH/pQHnzwwXz3u9/N8OHD09XVlbPOOit//etfc+6551plAAAAAANQVfe27i14Cx5++OEsW7YsJ510UkaMGJEk6ezszN133536+voce+yxRe9TX1+f46ZO7c2pAQBvA7t0dGTy008nSRrHjk2bLy8AYLseuP/+LX55cXt6/b+qBx10UA466KAtjtXU1ORjH/tYb58KAAAAqKBe2xMBAAAAGNxEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBkSF9PAGBHOjs709XV1dfTKFZdXZ2ampq+ngYAAPQ6EQHo1zo7O9M4f37Wt7f39VSK1dfVZfJxxwkJAAAMOiIC0K91dXVlfXt7vjduXIZV9/87sNZ1deXsJ59MV1eXiAAAwKAjIgADwrDq6gEREQAAYDDzf+QAAABAEREBAAAAKCIiAIPSmGnTMmbatL6eBgAADCr2RAAGpf3OPDP1Y8Zk5V13bXfcmBNOyNAxY7Y49uLSpXlx2bJU19Vt8zXdnZ3pamvrtbkCAMBAISIAg1N3d9Y//fQOh4077bQMGTYsqx98MDX19dn39NOz5IwzMu7f/i0Hz569zde8+NBDWTR9em/PGAAA+j0RARiUqnfZJe0vvLDDcV0bN+ZvCxdm+fXXZ/Txx2fMCSfk+aam1I8Zk3UtLVlwzDFbjD/gS1/K//rnf95Z0wYAgH5NRAAGtLo99kh1bW262tuT7u6e40OGDUvb88+n7p3v3GJ81ZAhqa6re3WVQldXz3NjTjghK+fNS7q60tXR8Ybn3N5zAAAwmIkIwID2/quuyl7HHrvN53Y74ICMbm7e5nN3ve996Vy3rudxdV1d9vroR3P/V76yU+YJAACDgYgADGj3nX9+ujs7093V1bMSobq2Nic+8ECq6+ryu6lTs/aJJzYNrqpKdW1tqmtrtwgISbLHEUekdrfdsnrp0lcPVlVttbliVU3NTr0eAADoz0QEYEDrXL9+q2O7TZyY6rq6tD3/fPY++eQ8eu21r47v6Njma/7e1JTVS5fmwJkzs+yKK5Ikw8aOzcf+/Oetxj7f1NSLVwAAAANHdV9PAKC37T1tWlqXL89fvvOd7Hv66Rmy6647fE1Xe3sevOSSjDv11Azfd98kybqWlvxywoQt/v7fNdfs5NkDAED/JSIAg0rd7rtn3Kmn5vFbbskTt9+eJHnPhRcWvXbN8uV5cdmyLfZY6O7s3OLvtZs3AgDA242IAAwqE6+4Im2rVuXJO+9M59q1efiqq7LfmWe+4eaLr1U7YkR22XPP1NTXV2CmAAAw8IgIwKAx4fzzM/r44/P4rbeme+PGJEnLT36SZ371q0y69trs/sEPvuFr33vJJZna1JQhw4dnZUNDpaYMAAADio0VgYGvujoHXXpp9jvjjDz2/e/nfV/7WmqGDctfb7opSfLgxRfn8JtvzhG33JL/ufLKPPnKbQ6v9eSPfpRVixblhebmdLW3Z+T73pdh++yTjz3yyBbjqqqq8vc//rEilwUAAP2NiAAMaLvuv38Onj07Iw48MPf++79n1cKFaV+9OgddemnWr1yZZ37xi3S1t+fez38+h1x1VQ75xjcy9l/+JY9cc01eaG5OqqqSJGtXrMjaFSt63reqqirrWlqy4JhjtjjfAV/6UkYddVQlLxEAAPoNtzMAA1b9mDE5+o47Ul1Xl0X/+q9ZtXBhkuSv//VfefwHP8gehx/eM7arvT0PzJyZBy++OCMmTEjNsGFJkuq6um2+d9WQN26sVbW1vXgVAAAwcFiJAAxY61euzMJPfCLrWlq2+tWE//mP/0i6urZ6zVM//nGe+dWv0rlhQ5I3jgVrHn88T95xx1bHVy1alHVPPtkLswcAgIFHRAAGtHVPPbXtJ7YREDbbHBCSpOmMM7Y5ZvV992X1ffdtdfzFhx7Kiw899I9NEgAABgm3MwAAAABFRAQAAACgiIgAAAAAFLEnAjAgrNvOHgf9yUCZJwAAvBkiAtBv/fnPj+Sl1tbUVlfn7AH0iwj1dXWprrbQCwCAwUdEAPqt9Rs2ZEN3Xd590v9Od8E3/B3t6/PXBT/IoYcemj1HjarADLeturo6NTU1fXZ+AADYWUQEoN+asP/4LFy0OKMmfDD179xrh+MfX3h73rH7nhk9ZkyqqqoqMEMAAHh7sd4W6Ld23W23jB6zdx77v/9nh2M72tZlxeIfZ8IB7xYQAABgJxERgH5twv7js3Lp77J+9XPbHffUH36Z4cPqM6oPb2MAAIDBTkQA+rWS1QibVyG8xyoEAADYqUQEoN/b0WqEp/7wywwfPqxPN1MEAIC3AxEB6Pd6ViM0/vdWz3W0rd+0F8L+461CAACAnUxEAAaECfuPz8qHGrNu9bNbHN+8CsFeCAAAsPOJCMCAsHk1wuONr+6NsGkVwp15j1UIAABQESICMGC8fjWCvRAAAKCyRARgwHjtagSrEAAAoPKG9PUEAP4RE/Yfn4WLGlNVU2sVAgAAVJiVCMCAsnk1Qktzg1UIAABQYVYiAAPOge85IPVD66xCAACACrMSARhQ1ib5+7BhGfre96alqipr+3pCAADwNmIlAjAgrE/yaJKXXnf88SQjk0xIUl/pSQEAwNuMlQhAv7c+yYPZFBB2STL0NX+7vHL8wVfGAQAAO4+IAPR7jybZmE3R4PXbKFa9cnzjK+MAAICdR0QA+rW1eXUFwvZsXpFgjwQAANh5KhYRLrvsskyaNCnTpk3LqlWrKnVaYIB74ZV/7uiHHDc//8J2RwEAAG9FRSJCQ0ND7rnnnjQ3N2fWrFm57LLLKnFaYBDoeN3jXTs68uUnnsiXn3giu3a8/tmtxwMAAL2nIhFh3rx5Of3001NdXZ0pU6ZkyZIllTgtMAj8oz8h4ydnAABg56nI/2+3trZm3LhxSZKqqqqsXbv1Xctz5szJnDlzeh53bOMbRuDtZ/ds+hnH7my6ZWHNkCG57p/+aatx3a8ZD7y9tQ0Zknnb+JwAAN66iqxEGDFixBbh4OWXX95qzMyZM9PS0tLzN2SI7xOBZHiSkUnadjCu7ZVxw3f6jAAA4O2rIhHhyCOPzIIFC5IkjzzySEaNGlWJ0wKDxIQktUk25NUVB5t1v3K89pVxAADAzlORiHDyySenqakpM2bMyKmnnpoLL7ywEqcFBon6JO/PqysSNrzmb/MKhPe/Mg4AANh5KnLPwNChQ7N48eI0NDTkzDPPzOGHH16J0wKDSH2SQ5KszaafcezIpg+w3eMWBgAAqJSKbTwwdOjQTJ8+vVKnAwap4RENAACgr1TkdgYAAABg4BMRAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQ5E1HhN/+9rc54YQTtjh22WWXZdKkSZk2bVpWrVqVJFm1alU+8pGP5Oijj84VV1zx1mYLAAAA9Jk3FRHuvPPOzJ49O21tbT3HGhoacs8996S5uTmzZs3KZZddliSZMWNGPve5z2Xx4sVZsWJF7rnnnt6ZOQAAAFBRbyoiHHroofne9763xbF58+bl9NNPT3V1daZMmZIlS5YkSRYsWJBPf/rTSZKTTz45v/nNb97ilAEAAIC+MGRHA84777w8/PDDWxz7/ve/v9W41tbWjBs3LklSVVWVtWvXJkmGDh2a+vr6JMnIkSOzcuXKbZ5nzpw5mTNnTs/jjo6OwksAAAAAKmGHEeGGG27Y5vEVK1Zs8XjEiBE94SBJXn755SRJTU1Nz7HW1tZ0d3dv8/1mzpyZmTNn9jzeHB4AAACA/qHXfp3hyCOPzIIFC5IkjzzySEaNGpUkmThxYpqbm5Mkzc3NGT9+fG+dEgAAAKigHa5EKHXyySfn6quvzowZM7Jo0aJceOGFSZKLL744Z555Zk488cT8+Mc/7tkrAQAAABhYqrrf6P6CN2HDhg1paGjI2LFjc/jhh/ccX7FiRZqamjJlypTstddeRe9VX1+f46ZO7a2pAQAAANvwwP33p6WlpWhsr61ESDZtojh9+vStju+7777Zd999e/NUAAAAQIX12p4IAAAAwOAmIgAAAABFRAQAAACgiIgAAAAAFBERAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEVEBAAAAKCIiAAAAAAUEREAAACAIiICAAAAUEREAAAAAIqICAAAAEAREQEAAAAoIiIAAAAARUQEAAAAoIiIAAAAABQREQAAAIAiIgIAAABQREQAAAAAiogIAAAAQBERAQAAACgiIgAAAABFqrq7u7v7ehLbMmTIkIwePbqvpwH0U2vWrMmuu+7a19MA+jGfE8D2+IyAV61atSptbW1FY4fs5Lm8aaNHj05LS0tfTwPop/bZZx+fEcB2+ZwAtsdnBLw5bmcAAAAAiogIAAAAQJGaK6+88sq+nsQb+fCHP9zXUwD6MZ8RwI74nAC2x2cE/OP67caKAAAAQP/idgYAAACgiIgAAAAAFBERgH6tvb09a9eu7etpAAPQsmXLsn79+r6eBgAMKkP6egIA27Ns2bJMmzYtzz333FbPfeADH8jIkSOzcuXKfPSjH80NN9zQBzMEKu3666/PLbfckmHDhiVJnnvuuey1115Jks7Ozuy333659dZb86Mf/Sh33313brzxxkyZMiUHHXTQFu/T0tKSq666Kp/97Gcrfg0AMFCJCEC/N3bs2G0er62tTWNjY2bNmpXJkyfnnHPOyR/+8IeMHDkySbJ8+fL85Cc/yVFHHVXJ6QI7WWtra84777ysWbMm5557bg499NA0NjbmmmuuyfHHH59Zs2YlSWbPnp3Ozs60trZm0qRJaWxs3OJ9rrzyytTV1fXBFQDAwOV2BqBf6e7uTnt7e8/jDRs29HzbuPn5tra2JEl19aaPsIULF2bKlCkZOnRorrvuuixevDiLFy/OSSedlF122aWyFwDsdJv/3X/44Ydzxx13JEl+//vf59e//nWGDx+eqqqqdHd35y9/+Uu+8Y1vZOLEiUmSm266KUcddVSOPvrofPGLX9zivQCAMlYiAP3KihUr8slPfjJ1dXWpqqrK6tWr8+ijj+aII45IsikibNiwIUuXLk2SPPvssxk6dGiGDx/el9MGKqitrS3/+Z//mZEjR+b+++/PY489losuuijd3d2ZPn169thjjzzxxBOZPHlyLr300px22mlJkrPPPjvnnHNOqqqq0tnZmdmzZ/fxlQDAwCMiAP3KfvvtlwceeKDn8Te/+c1cfPHFufrqq3PMMcdsNb6mpiatra1pbW1Nknz5y1/e4naGGTNmVGbiQMVcfvnlufzyy3seT5w4MU1NTVuNW7JkSa699tp0d3cnSZqamnLppZcmST71qU9VZrIAMMiICEC/9vOf/zxz587N3LlztxkRRo0alRkzZuTGG29Mklx33XWZPHlykuSss86q4EyBSvnOd76T6667LrvttluS5LHHHstxxx2XZNMqhYkTJ+bb3/523vWud+XrX/96Xn755SSb9lI47rjjMnny5DQ0NKS+vr7PrgEABio3AgL91rx58zJixIh84QtfyAsvvJA777xzm+MOO+yw3HvvvRWeHdAX1q1bl89//vP505/+lKampjQ1NWX8+PGZP39+5s+fn0WLFmXu3Lk9q5OOPvrorF69Okl6ViQkSVVVVZ/MHwAGOisRgH7pgQceyAUXXJCvfe1rSZKbb745U6dOzTve8Y6ebxyTZP78+fniF7+YGTNmZPny5X01XaBCvv3tb+dnP/tZampqeo7tueeePSuQkqSrqysHH3xwTjvttOyxxx555zvfmSQZNmxY7rrrrsybNy+nnHJK1qxZU+npA8CAZyUC0O/cfvvt+cxnPpO5c+fm61//eubPn5/x48fnpz/9ac4+++x89atfzUsvvZSOjo5MmjQpDQ0N+cpXvpIkueCCCzJ58uRMnjw5d999dx9fCdDbLrroouy99965+eabc9NNN+WUU05JY2NjDjzwwNx222257bbbMnr06HzrW9/K1VdfnQsuuCBdXV1JksmTJ+fee+/NkiVLMmvWrLz44oupra3t4ysCgIFFRAD6lZ/97Gf54Q9/mAULFmTq1Kn5xS9+kYaGhiTJwQcfnPvuuy+PPfZYnn766WzcuDG777579t9//yTJxo0b881vfjONjY1pbGzMiSeeuMXPRQID37Jly/LUU0/l3e9+d2pra3PrrbcmSUaMGJE//vGP2XvvvbNy5cosXbo0Y8aMyfHHH9/zs7CvdeWVV+ahhx7KUUcdVelLAIABrar7tTcIAgxgf/vb37Lbbrv1bJbW1taW2tpavwMPg0hHR0eee+65jB07Nt3d3VmzZk3PBoubbdy40QoDANhJRAQAAACgiK/nAAAAgCIiAgAAAFBERAAAAACKiAgAAABAEREBAAAAKCIiAAAAAEX+P4yviSzWwf+eAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1280x1600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hole_t=pow(hole,1/4)\n",
    "sun_color=(0,1,1)\n",
    "hole__color=(0,1/hole_t,1/hole_t)\n",
    "base_sun=100\n",
    "fig, ax = plt.subplots(1,1,figsize=(16,20), facecolor='white', dpi= 80)\n",
    "ax.vlines(x=1, ymin=0, ymax=sun, color='firebrick', alpha=0.7, linewidth=2)\n",
    "ax.scatter(x=1, y=sun, s=sun**2*base_sun, color=sun_color, alpha=0.7,cmap='inferno')\n",
    "\n",
    "ax.vlines(x=2, ymin=0, ymax=hole_t, color='firebrick', alpha=0.7, linewidth=2)\n",
    "ax.scatter(x=2, y=hole_t, s=hole_t**2*base_sun, color=hole__color, alpha=0.7, cmap='inferno')\n",
    "\n",
    "ax.set_xticks([0,1,2,3])\n",
    "ax.set_xticklabels([None,\"太阳\",\"黑洞\"])\n",
    "plt.annotate('太阳', xy=(1, 5), xytext=(1, 20),\n",
    "             bbox=dict(boxstyle='square', fc='firebrick'),\n",
    "             arrowprops=dict(facecolor='steelblue', shrink=0.05), fontsize=15, color='white')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 颜色映射\n",
    "c=y 表示 颜色随y变化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colors.ListedColormap at 0x1adf2836588>"
      ]
     },
     "execution_count": 181,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAD6CAYAAACoCZCsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAEstJREFUeJzt3W2IXNd9x/Hvb3ZtUOUQnNaIOpCCqUgxWILEdSUi400qu7bjF8YJccjDm6QolNJ3hTa1oNh1EvALg8mDmy2ipIIY8kCMCzFWjCMiEiX2Ko0fQimlje3WtXFTG6umwSHWvy/m7u7s7Oxq946kVXS+HxjrnnPPuffM8ej+dO/cmUlVIUlqz2CrByBJ2hoGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWrUpgMgyaEkx5McXKfNbJLnkxztHld19XcmeSLJF6cZtCRpepsKgCS3ATNVtRe4IsnONZruAh6oqrnu8XSSdwP7gGuAl5Psn2rkkqSpzG6y/RzwtW75CMMD+r9OaLcHuCXJe4GngU8B1wHfrKpK8ghwE/DoeMckB4ADXfHdI2vGW06oz1hNusJozaT2I3WZsI01+q2sz7p9Vm21Ju1lUsuR2kxqf7pyRrudvm82s+3J7Vf3qfH/DRvbx6r2NVZefxxZq302ts3hvJ1uGys/Sb+0zTWf6+q5WNrOpLoJG1mqH2+f1Z/qX1W31KdWFkef6/i+Vk3MpL6T+y/ORcbKk7a3qu9mXoiZNOFZPchV61b/3V+1PFpOVvWpVX2yTnnlfouM7Ssr95GsPvYsrR85VmS0HE6c+NnPq+oyTmPdAEjyZeCdI1XXAYe65VeAd63R9Qlgf1W9mOQfgJuB7cC/jfTdMaljVc0D893+a3mIg+FEZDBSnoEMSHcikwyG9V2bMEMyWh4uh5nhFrq+yczSNgbd8mKfAcPyoOsTBktthuuH2xvUgMGKupFyt260z6CytD7DPS71WlnHcjnDumGZrtyt75YHGV2/2G9xxoavk8Xy4rrlbSz26dpneTvLfVa3GVBLr+HRPsv7rKV9D9vUWJth/+VxVPdcVpYX/1y5jVrVZnG/g9SK8rBNrRjHsFzL2+yez9I2U0sH3KX1K7Y7XF65jVo5rpFtLJVH1w+K5NTKurE2i+2G5VMr9pnB8hgyOLViHBmMbuMUjJYHo9s4taqOwalVbRjd5qAgp5bKLD6PQS3vZ6zP4jaXDvqDbsxL67v/h4NafkEMur/2I+UVL5hBYDAYeUENRuoGy3UZK4+sr8HMWPsZamJ5ZvgY6VNdedhmbH1mR9bPdm1mR9rMQmaH6xbbZBYGFy2Vk64OSFdOZknXJ5llkFmSxePaLLODjz3HBqwbAFX1qdFykvuAbV3xEta+hPRUVb3RLS8AO4HXN9hXknQObPYgfILhZR+A3cCza7Q7nGR3hpF0K/DkJvpKks6Bzb4H8CBwLMnlDK/h70lyJfCRqhq9K+gu4KsMrwY8VFWPZnhN5XPdWcSN3UOStEU2FQBVdTLJHHA9cE9VvQa8Bhwca/cMwzuBRutOdXf+vB+4r6p+Ns3AJUnT2ewZAFX1Kst3Am227y+Ab/TpK0k6s3wjVpIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSozYdAEkOJTme5OA6bd6a5OEkR5J8K8nFSWaTPJ/kaPe4arqhS5KmsakASHIbMFNVe4Erkuxco+lHgXur6gbgJeBGhj8S/0BVzXWPp6cZuCRpOps9A5hj+QfhjwD7JjWqqi9V1Xe64mXAy8Ae4JYkj3dnEZv+QXpJ0pmz7kE4yZeBd45UXQcc6pZfAd51mv57gUur6odJ3gT2V9WLSf4BuBl4aEKfA8CBjT8FSVIf6wZAVX1qtJzkPmBbV7yEdc4gkrwN+Dzwga7qqap6o1teACZePqqqeWC+20adZvySpJ42ewnoBMuXfXYDz05qlORi4OvAp6vqua76cJLdSWaAW4EnNz9cSdKZstnr8A8Cx5JcDtwE7ElyJfCRqhq9K+iTDC8P3ZHkDuB+4C7gq0CAh6rq0alHL0nqbVMBUFUnk8wB1wP3VNVrwGvAwbF29zM86I/b1XOckqQzbNN34lTVqyzfCSRJ+jXlJ4ElqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDWqdwAkOZTkeJKDm2mzkX6SpLOvVwAkuQ2Yqaq9wBVJdm6kzUb6SZLOjb5nAHMs/zD8EWDfBttspJ8k6RzoGwDbgRe65VeAHRtsc9p+SQ4kWUiy0HNskqQNmO3Z73VgW7d8CZODZFKb0/arqnlgHiBJ9RyfJOk0+p4BnGD58s1u4NkNttlIP0nSOdD3DOBB4FiSy4GbgA8nubuqDq7TZg9QE+okSVug1xlAVZ1k+IbuD4H3VtWTYwf/SW1em1TXf+iSpGn0PQOgql5l+Y6eDbfZSD9J0tnnJ4ElqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDWqdwAkOZTkeJKDa6x/a5KHkxxJ8q0kFyeZTfJ8kqPd46r+Q5ckTaNXACS5DZipqr3AFUl2Tmj2UeDeqroBeAm4EdgFPFBVc93j6b4DlyRNp+8ZwBzLP+x+BNg33qCqvlRV3+mKlwEvA3uAW5I83p1B9P5ReknSdPoGwHbghW75FWDHWg2T7AUuraofAk8A+6vqGuAi4OYJ7Q8kWUiy0HNskqQN6Psv8NeBbd3yJawRJEneBnwe+EBX9VRVvdEtLwCrLh1V1Tww3/WvnuOTJJ1G3zOAEyxf9tkNPDveIMnFwNeBT1fVc1314SS7k8wAtwJP9ty/JGlKfQPgQeDjSe4FPgT8NMndY20+CbwLuKO74+d24C7gMPAT4HhVPdpz/5KkKfW6BFRVJ5PMAdcD91TVS4z9a76q7gfun9B9V599SpLOrN534VTVqyzfCSRJ+jXjJ4ElqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDWqdwAkOZTkeJKDa6yfTfJ894PwR5Nc1dXfmeSJJF/su29J0vR6BUCS24CZqtoLXJFk54Rmu4AHqmquezyd5N3APuAa4OUk+3uPXJI0lb5nAHMs/yD8EYYH9XF7gFuSPN6dLcwC1wHfrKoCHgGu7bl/SdKU+gbAduCFbvkVYMeENk8A+6vqGuAi4OaN9EtyIMlCkoWeY5MkbcBsz36vA9u65UuYHCRPVdUb3fICsHMj/apqHpgHSFI9xydJOo2+ZwAnWL7ssxt4dkKbw0l2J5kBbgWe3GA/SdI50PcM4EHgWJLLgZuADye5u6pG7wi6C/gqEOChqno0yQD4XJL7gBu7hyRpC/QKgKo6mWQOuB64p6peYvgv/NE2zzC8E2i07lR358/7gfuq6me9Ri1JmlrfMwCq6lWW7wTaTL9fAN/ou19J0pnhJ4ElqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRGGQCS1CgDQJIaZQBIUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRvUOgCSHkhxPcnCN9X+S5Gj3+EmSLyeZTfL8SP1V/YcuSZpGrwBIchswU1V7gSuS7BxvU1X3V9VcVc0Bx4C/A3YBDyzWV9XTU4xdkjSFvmcAc8DXuuUjwL61GiZ5O7CjqhaAPcAtSR7vziBmJ7Q/kGQhyULPsUmSNqBvAGwHXuiWXwF2rNP2T4H7u+UngP1VdQ1wEXDzeOOqmq+qq6vq6p5jkyRtQN8AeB3Y1i1fstZ2kgyA9wJHu6qnqurFbnkBWHXpSJJ0bvQNgBMsX/bZDTy7RrtrgR9VVXXlw0l2J5kBbgWe7Ll/SdKU+gbAg8DHk9wLfAj4aZK7J7T7I+B7I+W7gMPAT4DjVfVoz/1Lkqa06k3Yjaiqk0nmgOuBe6rqJSb8a76q/mqs/AzDO4EkSVusVwAAVNWrLN8JJEn6NeMngSWpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNap3ACTZkeTYOusvSvKPSb6f5BNr1UmStkavAEhyKfAVYPs6zf4MOFFV7wE+mOQta9RJkrZA3zOAN4HbgZPrtJlj+UfjvwdcvUbdCkkOJFlIstBzbJKkDZjt06mqTgIkWa/ZduCFbvkVYMcadePbngfmu+1Xn/FJkk7vbL4J/DqwrVu+pNvXpDpJ0hY4mwfgE8C+bnk38OwadZKkLdDrEtC4JO8DrqyqL4xUfwX4dpJrgSuBHzG8/DNeJ0naAlOdAVTVXPfnY2MHf6rqOeB64PvA/qp6c1LdNPuXJPV3Rs4A1lJV/8XyXT9r1kmSzj3fhJWkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRBoAkNcoAkKRG9Q6AJDuSHFtn/TuSHE3yWJL5DL09yX929UeTXNZ3/5Kk6fT6ScgklzL80fft6zT7FPAnVfXPSR4GrgJ+F/hMVd3fZ7+SpDOn7xnAm8DtwMm1GlTVHVX1z13xN4GfA3uAP07y4ySf7blvSdIZ0CsAqupkVb22kbZJbgd+2v0Y/MPAHPD7wN4ku/rsX5I0vV6XgDYqyRXAnwP7u6ofVNUb3bp/AnYCT431OQAcOJvjkiSdxbuAuvcJHgA+MXK28EiS307yG8ANwDPj/apqvqqurqqrz9bYJEln6AwgyfuAK6vqCyPVfwm8A/h8EoC/Bu4Evgv8EvjbqvqXM7F/SdLmTRUAVTXX/fkY8NjYur8A/mJCt9+bZp+SpDPDD4JJUqMMAElqlAEgSY0yACSpUQaAJDXKAJCkRhkAktQoA0CSGmUASFKjDABJapQBIEmNMgAkqVEGgCQ1ygCQpEYZAJLUKANAkhplAEhSowwASWqUASBJjTIAJKlRvQMgyY4kx9ZZ//Yk/5nkaPe4rKs/lOR4koN99y1Jml6vAEhyKfAVYPs6zf4A+ExVzXWP/05yGzBTVXuBK5Ls7LN/SdL0+p4BvAncDpxcp80e4I+T/DjJZ7u6OeBr3fIRYF/P/UuSpjTbp1NVnQRIsl6zh4G/Af4PeDTJLoZnDC90618B3jXeKckB4EBXfB1+9T/AzwFq6T/dOMbKF7DfopuDxjkPzsEi52H9OfidjWygVwBs0A+q6g2AJP8E7AReB7Z16y9hwhlIVc0D84vlJAtVdfVZHOd5zzkYch6cg0XOw5mZg7N5F9AjSX47yW8ANwDPACdYvuyzG3j2LO5fkrSOM3IGkOR9wJVV9YWR6juB7wK/BP62qv4lyYvAsSSXAzcxfJ9AkrQFpgqAqprr/nwMeGxs3XeB3xurO5lkDrgeuKeqXtvAbuZP3+SC5xwMOQ/OwSLn4QzMQaraeBdVkrSSnwSWpEYZAJLUqPM6AFr82ogks0meH/kKjauS3JnkiSRf3OrxnQujXzOS5KIk/5jk+0k+sVbdhWZsDpr7WpUkb03ycJIjSb6V5OJJz/dCngNYcx5WHB+6dr2OEedtADT8tRG7gAcWv0IDuJjhrbPXAC8n2b+VgzvbJnzNyJ8BJ6rqPcAHk7xljboLxoQ5aPFrVT4K3FtVNwAvAR9m7Pk2MAeweh7+kpHjQ1U9neTd9DxGnLcBQLtfG7EHuCXJ40kOAX8IfLOG79Y/Aly7paM7+8a/ZmSO5dfB94Cr16i7kIzPQXNfq1JVX6qq73TFy4CPsfr5zk2ou6BMmIdfMXJ8SDILXEfPY8T5HADjXxuxYwvHci49AeyvqmuAixh+crqZeaiqk2O3B096HVzQr40Jc/Aww4Pd7wN71/halQtqDhYl2QtcCvwHjb0ORo3Mw3dYeXy4mSnm4XwOgNN+bcQF6qmqerFbXqDdeVg06fm3Nic/qKr/rao3gQ1/rcqvuyRvAz4PfIKGXwdj8zB+fJjqtXA+T1irXxtxOMnuJDPArQzTvcV5WDTpddDaa6O5r1VJcjHwdeDTVfUcjb4OJszD+PHhSaaYh7P5ZXDTepA2vzbiLuCrQICHgLsZzsN9wI3doyVfAb6d5FrgSuBHDE93x+suZC1+rconGX5b8B1J7gD+Hvj42PMtLuw5gNXz8F3gMN3xoaoeTTIAPtfnGHFefxK4uxvieuB7VfXSVo9nqyTZBrwf+HFV/ftWj+dc6/6C7wMeWbw2PqmuNa39/Zj0fFubg7X0PUac1wEgSTp7zuf3ACRJZ5EBIEmNMgAkqVEGgCQ1ygCQpEb9P23torFCfTjYAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gradient = np.linspace(0, 1, 256)  \n",
    "gradient = np.vstack((gradient, gradient)) \n",
    "plt.imshow(gradient, aspect='auto', cmap='inferno')\n",
    "plt.cm.inferno"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 280,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n",
      "'c' argument looks like a single numeric RGB or RGBA sequence, which should be avoided as value-mapping will have precedence in case its length matches with 'x' & 'y'.  Please use a 2-D array with a single row if you really want to specify the same RGB or RGBA value for all points.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.colors.ListedColormap at 0x1adf2836588>"
      ]
     },
     "execution_count": 280,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gradient = np.linspace(1, 0, 256)  \n",
    "xy = np.linspace(0, 1, 256)  \n",
    "for i,xy in zip(gradient,xy):\n",
    "    plt.scatter(xy,xy, c=(0,i,i))\n",
    "plt.cm.inferno"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 270,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x1ad81fac898>"
      ]
     },
     "execution_count": 270,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gradient = np.linspace(1, 0, 256)  \n",
    "xy = np.linspace(0, 1, 256)  \n",
    "\n",
    "plt.scatter(xy,xy, c=xy[::-1], cmap='inferno')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
